如何在热字符串函数中调用全局变量。
这有效:
::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return
这不会:
hlwvar = Hello World
::hlw::
sendInput %hlwvar%
return
如何在热字符串函数中调用全局变量。
这有效:
::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return
这不会:
hlwvar = Hello World
::hlw::
sendInput %hlwvar%
return
我通过 Aardvark 从“Joel T. 33 / M / Seattle, WA”得到了这个答案。我把它贴在这里是因为它非常有用。
--
您的第二种形式应该确实有效;尝试将这 4 行粘贴到一个新脚本中并运行它来查看。最有可能的问题是,在您的第二个示例中,“hlwvar = Hello World”实际上并未被执行,因为它不在脚本的顶部。当 AHK 第一次运行脚本时,它从顶部开始执行,直到遇到“返回”或热字符串/热键定义。因此,您应该始终在脚本顶部定义全局变量和任何其他全局设置,并且一旦所有脚本“初始化”都在那里完成,以“返回”结束。然后将所有热字符串/热键/函数放在该点下方。
我喜欢做的一件事是将我所有的全局内容放入一个函数中,例如 Init() { global someglobalvar = myvalue return } 然后在我的脚本顶部我有 Init() return
这使得一目了然地识别我的 init 内容所在的位置变得非常容易,并且如果需要,也可以将 init 例程移到其他地方。请注意,如果您希望在所述函数内分配的所有变量都可以全局使用,则“global”关键字必须是函数定义中的第一个命令。
正如克里斯提到的,以下两个代码对我来说完全一样:
::hlw:: hlwvar = 你好世界 发送输入 %hlwvar% 返回
和
hlwvar = 你好世界 ::hlw:: 发送输入 %hlwvar% 返回