在热键块中使用全局变量(Autohotkey)

Use global variable in Hotkey Block (Autohotkey)

我的 Autohotkey 脚本不工作。全局变量似乎在“^1”块中有一个空值。如何声明可在多个热键块中使用的全局变量?

#if (true)
    global allActsRowY := 76
    global act1X := 249

    global allTownsY := 133
    global allTownsX := 245
    
    global clickDelay := 30
    
    
    ;Act 1 WP Town Shortcut
    ^1::
    {
        Click, left, %act1X%, %allActsRowY%
        Sleep, clickDelay
        Click, left, %allTownsX%, %allTownsY%
    }
    return
#if

编辑:全局变量在 if 块中声明。我对代码进行了编辑。

我只能假设这不是您的整个脚本,并且您有例如最重要的是热键定义或其他内容。这意味着代码执行永远不会到达那些变量定义。
您希望在脚本的 auto-execute section.

中包含定义

还值得注意的是,您没有将变量定义为全局变量,而是将它们定义为 super-global,这是不必要的,也是一种不好的做法。
您可以从定义中删除单词 global,如果您在 functions/classes 之外定义它们,变量已经在全局范围内。并且热键块始终可以访问全局范围,无需任何额外步骤 (在 AHKv1 中).