Autohotkey 自动热键不';t检查语句条件是否正确

Autohotkey 自动热键不';t检查语句条件是否正确,autohotkey,Autohotkey,我的脚本应该检查一个变量的值,如果它是0,它应该重新映射一些键,如果该值不是0,它不应该重新映射任何键,或者运行任何热键:(我的变量称为chatbox) 但它不起作用!AHK不检查变量: ---- C:\Users\...\mysimplescript.ahk 157: SPI_SETDEFAULTINPUTLANG := 0x005A 157: SPIF_SENDWININICHANGE := 2 030: Return (3.41) 263: Send,z (0.02) 263: Retur

我的脚本应该检查一个变量的值,如果它是
0
,它应该重新映射一些键,如果该值不是
0
,它不应该重新映射任何键,或者运行任何热键:(我的变量称为
chatbox

但它不起作用!AHK不检查变量:

---- C:\Users\...\mysimplescript.ahk
157: SPI_SETDEFAULTINPUTLANG := 0x005A
157: SPIF_SENDWININICHANGE := 2
030: Return (3.41)
263: Send,z (0.02)
263: Return (2.50)
为什么不在热键中使用
if
语句?是的!问题是,它实际上不适用于游戏,可能只是Windows的工作方式,我尝试了以下方法:

1::
  If (ChatBox = 0)
    send z
  else
    send 1
return

我不想在热键中使用
if
语句,我的问题是,我希望某些热键随着变量的更改而被激活。

这会根据变量有条件地执行热键:

#If ChatBox = 0
  1::z
#If
#If WinActive("Minecraft 1.8.9") and ChatBox = 0
  1::z
#If

此操作基于变量和窗口有条件地执行热键:

#If ChatBox = 0
  1::z
#If
#If WinActive("Minecraft 1.8.9") and ChatBox = 0
  1::z
#If

REF:

此函数基于变量有条件地执行热键:

#If ChatBox = 0
  1::z
#If
#If WinActive("Minecraft 1.8.9") and ChatBox = 0
  1::z
#If

此操作基于变量和窗口有条件地执行热键:

#If ChatBox = 0
  1::z
#If
#If WinActive("Minecraft 1.8.9") and ChatBox = 0
  1::z
#If
参考: