Autohotkey 自动热键:热字符串变量';s

Autohotkey 自动热键:热字符串变量';s,autohotkey,Autohotkey,如何在hotstring函数中调用全局变量 这项工作: ::hlw:: hlwvar = Hello World sendInput %hlwvar% return 这并不是: hlwvar = Hello World ::hlw:: sendInput %hlwvar% return 正如Chris提到的,以下两个代码对我的作用完全相同: ::hlw:: hlwvar = Hello World sendInput %hlwvar% return ::hlw:: hlwvar=Hel

如何在hotstring函数中调用全局变量

这项工作:

::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return
这并不是:

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

正如Chris提到的,以下两个代码对我的作用完全相同:

::hlw:: hlwvar = Hello World sendInput %hlwvar% return ::hlw:: hlwvar=Hello World 发送输入%hlwvar% 返回 及

hlwvar=Hello World ::hlw:: 发送输入%hlwvar% 返回
正如Chris提到的,以下两个代码对我的作用完全相同:

::hlw:: hlwvar = Hello World sendInput %hlwvar% return ::hlw:: hlwvar=Hello World 发送输入%hlwvar% 返回 及

hlwvar=Hello World ::hlw:: 发送输入%hlwvar% 返回 我是通过Aardvark从“Joel T.33/M/华盛顿州西雅图”得到这个答案的。我把它贴在这里是因为它非常有用

--

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

我喜欢做的一件事是把我所有的全局内容放在一个函数中,例如。 Init() { 全球的 someglobalvar=myvalue 返回 } 然后在我的剧本的顶端我有 Init() 返回

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

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

--

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

我喜欢做的一件事是把我所有的全局内容放在一个函数中,例如。 Init() { 全球的 someglobalvar=myvalue 返回 } 然后在我的剧本的顶端我有 Init() 返回


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

我已经复制了您的底部代码(尽管我将其放在了4行中),它对我来说很好。不确定问题出在哪里…?我已经复制了你的底层代码(虽然我把它分成了4行),它对我来说很好。不确定问题是什么…?正是Chris指出的以及我的回答是关于什么的。:)除了Chris说“不确定问题是什么…”和Joel说“最有可能的问题是,在您的第二个示例中,“hlwvar=Hello World”实际上没有被执行,因为它不在脚本的顶部。“看到区别了吗?然后,您的问题没有提供足够的信息。”。因为如果你把我刚才给你的剧本拿出来,它就很有效了。如果我知道这是一个更大的剧本的一部分,那么我可以说这个职位确实会像克里斯和其他人提到的那样产生影响。如果它不在脚本的“自动执行”部分,它根本就不会被识别出来。这正是Chris指出的以及我的回答的内容。:)除了Chris说“不确定问题是什么…”和Joel说“最有可能的问题是,在您的第二个示例中,“hlwvar=Hello World”实际上没有被执行,因为它不在脚本的顶部。“看到区别了吗?然后,您的问题没有提供足够的信息。”。因为如果你把我刚才给你的剧本拿出来,它就很有效了。如果我知道这是一个更大的剧本的一部分,那么我可以说这个职位确实会像克里斯和其他人提到的那样产生影响。如果它不在脚本的autoexecute部分,则根本无法识别它。