我不明白Autohotkey If
和If(...)
之间的区别
根据我发现的一切,If(...)
表现为"期待"但是有一些东西与我的代码无关。
在下面不起作用。似乎永远不会评估If
中的语句,%TimeString%
永远不会被设置,也不会输出任何内容:
CapsLock & T::
Input Key, L1
If (Key=T)
{
FormatTime, TimeString,, HHmm
}
Send %TimeString%
在 下面工作,设置了%TimeString%
并输出了时间。
CapsLock & T::
Input Key, L1
If Key=T
FormatTime, TimeString,, HHmm
Send %TimeString%
答案 0 :(得分:5)
Autohotkey有两种不同的语法:legacy和expression。这也会影响if statement。
使用括号时,会使用if (expression)并将Key
与不存在的 变量 T
进行比较并且与不等于 T 的空变量相同。您需要将其更改为If (Key="T")
,然后将变量Key
与字符串"T"
进行比较,它将起作用。
在第二种情况下,您使用的是传统(遗留)If,它将变量Key
与字符串T
进行比较,因为它们相同,所以它可以正常工作。
花括号{
}
只是定义一个块,当块只包含一行时,它们什么也不做,什么都不做。
答案 1 :(得分:1)
您确定此代码与您的脚本相同吗? Beause
Tjs := T
if (Tjs=T)
{
MsgBox true
}
对我来说很好。