是否有功能相当于'如果WinNotExist()'?

时间:2017-08-28 18:56:59

标签: autohotkey

AutoHotkey语法的一个限制是纯if语句缺少not修饰符。

IfWinExist, Untitled - Notepad       ; valid
IfWinNotExist, Untitled Notepad      ; valid
If WinExist("Untitled - Notepad")    ; valid
If WinNotExist("Untitled - Notepad") ; invalid

虽然这通常不是问题,但如果遵守Egyptian Brackets/One True Brace (OTB)风格,这可能会变得很麻烦。

  

One True Brace(OTB)样式可以选择使用   if-statements是表达式(但不是传统的   if语句信息)。
   - AHK documentation on if-statements

这两个问题的结合使我无法进行简单的错误检查以验证是否存在窗口。

IfWinNotExist, Untitled - Notepad {  
    Return   ; invalid
}

If WinNotExist("Untitled - Notepad") {
    Return   ; invalid
}

我发现的唯一解决方案是破坏OTB样式并将我的括号放在换行符上,或使用不必要的冗余if-else语句。

如何通过功能检查AutoHotkey中是否存在窗口?

1 个答案:

答案 0 :(得分:0)

事实证明有一个简单的解决方案:使用!作为非修饰符。

If !WinExist("Untitled - Notepad") {
    Return
}

Robert Wigley suggests

If not WinExist("Untitled - Notepad") {
    Return
}