0

如何在热字符串函数中调用全局变量。

这有效:

::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return

这不会:

hlwvar = Hello World
::hlw::
sendInput %hlwvar%
return
4

2 回答 2

4

我通过 Aardvark 从“Joel T. 33 / M / Seattle, WA”得到了这个答案。我把它贴在这里是因为它非常有用。

--

您的第二种形式应该确实有效;尝试将这 4 行粘贴到一个新脚本中并运行它来查看。最有可能的问题是,在您的第二个示例中,“hlwvar = Hello World”实际上并未被执行,因为它不在脚本的顶部。当 AHK 第一次运行脚本时,它从顶部开始执行,直到遇到“返回”或热字符串/热键定义。因此,您应该始终在脚本顶部定义全局变量和任何其他全局设置,并且一旦所有脚本“初始化”都在那里完成,以“返回”结束。然后将所有热字符串/热键/函数放在该点下方。

我喜欢做的一件事是将我所有的全局内容放入一个函数中,例如 Init() { global someglobalvar = myvalue return } 然后在我的脚本顶部我有 Init() return

这使得一目了然地识别我的 init 内容所在的位置变得非常容易,并且如果需要,也可以将 init 例程移到其他地方。请注意,如果您希望在所述函数内分配的所有变量都可以全局使用,则“global”关键字必须是函数定义中的第一个命令。

于 2010-07-31T17:31:29.167 回答
1

正如克里斯提到的,以下两个代码对我来说完全一样:

::hlw::
hlwvar = 你好世界
发送输入 %hlwvar%
返回

hlwvar = 你好世界
::hlw::
发送输入 %hlwvar%
返回
于 2010-07-27T16:11:37.870 回答