为什么#include 会破坏全局变量?
Why is #include breaking global variables?
我有一个简单的 .ahk
文件,每当我按 Esc.
时,它都会重新加载当前的 运行 脚本
; reload-hotkey.ahk
Esc::Reload ; reload script with Esc
由于某种原因,导入此文件导致全局变量停止正常工作。
; test-file.ahk
#Include %A_ScriptDir%\reload-hotkey.ahk ; This line causes the problem
globalString := "Hello"
^q::
localString := "World"
MsgBox '%globalString% %localString' ; Output: ' World'
Return
如果我删除 #include
语句,代码将按预期工作。
; test-file-2.ahk
globalString := "Hello"
^q::
localString := "World"
MsgBox '%globalString% %localString%' ; Output: 'Hello World'
Return
只有当我包含的文件包含热键时才会发生这种情况。如果函数只包含方法或函数,我的代码将按预期工作。
作为参考,我使用的是 AutoHotkey Unicode 32 位 1.1.26.01。
为什么#include
语句会导致全局变量不能正常工作?
变量定义必须出现在任何热键或热字符串定义之前。
所以把变量定义放在include语句上面
globalString := "Hello"
#Include %A_ScriptDir%\reload-hotkey.ahk ; This line causes the problem
有关详细信息,请参阅 Autohotkey 文档中的 Auto-execute Section。
我有一个简单的 .ahk
文件,每当我按 Esc.
; reload-hotkey.ahk
Esc::Reload ; reload script with Esc
由于某种原因,导入此文件导致全局变量停止正常工作。
; test-file.ahk
#Include %A_ScriptDir%\reload-hotkey.ahk ; This line causes the problem
globalString := "Hello"
^q::
localString := "World"
MsgBox '%globalString% %localString' ; Output: ' World'
Return
如果我删除 #include
语句,代码将按预期工作。
; test-file-2.ahk
globalString := "Hello"
^q::
localString := "World"
MsgBox '%globalString% %localString%' ; Output: 'Hello World'
Return
只有当我包含的文件包含热键时才会发生这种情况。如果函数只包含方法或函数,我的代码将按预期工作。
作为参考,我使用的是 AutoHotkey Unicode 32 位 1.1.26.01。
为什么#include
语句会导致全局变量不能正常工作?
变量定义必须出现在任何热键或热字符串定义之前。
所以把变量定义放在include语句上面
globalString := "Hello"
#Include %A_ScriptDir%\reload-hotkey.ahk ; This line causes the problem
有关详细信息,请参阅 Autohotkey 文档中的 Auto-execute Section。