我正在使用AutoHotKeys来测试窗口是否与表达式一起处于活动状态。我似乎无法让它发挥作用。我将表达式赋给变量,然后测试ifWinActive和变量。 AutoHotKeys似乎无法正确评估表达式。这是我的剧本:
^W::
;hotkey always fires
done = false
SetTimer, CheckPopups, 10000 ; check every 10 seconds for window
CheckPopups:
this := (done != true)
#IfWinActive "Volume Spike - Down" and this
{
;specific lines only when active window is true and done is false
msgbox hello
done := true
}
IfWinNotActive Volume Spike - Down
{
done = false
}
当我启动脚本并且窗口未激活时,它会显示消息框Hello。然后10秒后再次显示它。如果窗口处于活动状态且done = false,它应仅显示消息框。知道我做错了吗?
答案 0 :(得分:2)
您正在使用#IfWinActive
a directive used to create conditional hotkeys。您应该使用IfWinActive
代替。
您还可以在if子句中使用函数版本WinActive()
。它让我看起来更清洁。
这是一个简短的例子:
#Persistent
done := false
SetTimer, CheckPopups, 1000 ; Check every second for window
return
CheckPopups:
if ( WinActive("Volume Spike - Down") ) and (!done) {
msgBox, Hello
done := true
} else {
done := false
}
return