AutoHotKey 2.0 错误:警告:此局部变量似乎从未被赋值

问题描述 投票:0回答:1

这是我第一次为我的新分体键盘编写 AHK 脚本。我熟悉编码,但不太熟悉 AHK 语法。

这是脚本的相关部分:

; Left Space (SC039) is the trigger key, no hold required
~SC039::
{

    ; Wait for the next key press
    userKey:= Input("L1 T5")
    ; Show MsgBox with the pressed key for debugging
    MsgBox("Key pressed after trigger: " userKey)

    ; If Backspace is pressed, exit the macro sequence
    if (userKey = "Backspace")
    {
        MsgBox("Backspace pressed, exiting the macro.")
        return  ; Ends the macro and stops further key processing
    }
    else if (userKey = "n")
    {
        ; Trigger: Open new window of current focused window
        MsgBox("Trigger: Open new window of current focused window")
    } ... etc

这是我运行脚本时遇到的错误:

Warning: This local variable appears to never be assigned a value.

Specifically: Input

    006: {
▶   009: userKey := Input("L1 T5")
    011: MsgBox("Key pressed after trigger: " userKey)
    014: If (userKey = "Backspace")

For more details, read the documentation for #Warn.

如果有帮助,我可以提供完整的脚本或任何其他信息。

我改变了输入行

Input, userKey, L1
(我认为是 1.1?)
Input(userKey, "L1")
应 ChatGPT 的要求。

那仍然不起作用,所以我尝试直接使用分配 userKey 变量

userKey:= Input("L1")
并添加“T5”以查看时间限制是否是一个问题。理想情况下,我希望它等到按下另一个键,但没有时间限制。

autohotkey
1个回答
0
投票

在 AutoHotkey V2 中,通过引入 InputHook(),输入处理机制得到了显着更新。这种新方法取代了AHK之前的输入方法,提供了更强大、更灵活的输入捕获功能。对于 AHK 开发人员来说,此更改增强了对输入处理的控制,并使创建复杂的输入相关脚本变得更加容易。 主要改进包括:

更强大的输入捕获 处理用户输入具有更大的灵活性 改进了创建自定义输入场景的方法 增强对输入事件的编程控制

有关详细的实现和使用,开发人员应参考关于 InputHook() 的 AutoHotkey V2 官方文档,它提供了有效利用这种新输入法的全面指导。

© www.soinside.com 2019 - 2024. All rights reserved.