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