在使用WinClose之前,我应该检查窗口是否存在吗?

时间:2017-09-07 19:55:35

标签: autohotkey sanity-check

WinClose 的文档包含一个代码示例,用于在尝试关闭之前检查 IfWinExist

IfWinExist, Untitled - Notepad  ; check if window exists
    WinClose                    ; close window found above

我也看到脚本自己使用WinClose而不检查窗口是否存在。

WinClose, Untitled - Notepad    ; close window without checking if it exists

我无法找到任何理由使用一种方法而不是另一种方法。无论哪种方式,我的脚本似乎都可以正常工作,使得选择看起来像个人偏好。

是否有理由在使用WinClose关闭窗口之前检查窗口是否存在?

1 个答案:

答案 0 :(得分:2)

不,在关闭窗口之前,您无需检查窗口是否存在。如果不存在匹配的窗口,WinClose将无法执行任何操作。这不是示例所说的。

该示例试图说明在使用WinClose时不需要重复目标窗口的WinTitle和/或WinText。在某些情况下,它只会为您节省一些打字(和性能) 例如:

IfWinExist, Untitled - Notepad
    ;do stuff
    ;do more stuff
    ;etc
    WinClose ;close the window found above

WinTitle的文档中解释了这一点,“找到的最后一个”窗口

  

这是IfWin [Not] Exist,WinExist(),IfWin [Not] Active,WinActive(),WinWait [Not] Active或WinWait最近发现的窗口。 它可以使脚本更容易创建和维护,因为目标窗口的WinTitle和WinText不需要为每个窗口命令重复。 此外,脚本执行效果更好,因为他们不需要在第一次找到目标窗口后再次搜索目标窗口。