#If 指令后无法访问变量

variable not accessible after #If directive

var1 := "this works"

#If WinActive("")
d::d
#If

var2 := "this doesn't"

x::
    MsgBox, %var1%, %var2%
return

触发热键时,只显示var1,好像var2根本不存在
为什么会发生这种情况,我该怎么做才能从热键访问 var2?
我无法将 var2 向上移动,因为我的实际代码分为两个文件。

您不能在热键或热字串之间或之后定义变量。 Hotkeys/Hotstrings终止自动执行代码行和

var2 := "this doesn't"

永远不会变为真,因为永远不会执行。

必须定义一个变量

  • auto-execute section(第一个return或热键之前的脚本顶部),
  • 或 hotkey/hotstring、
  • 或在标签(子程序)中,
  • 或函数中。