在热键块中使用全局变量(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 中).
我的 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 中).