Должен ли я проверить, существует ли окно перед использованием WinClose?

Документация для 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 ответ

Решение

Нет, вам не нужно проверять, существует ли окно, прежде чем закрывать его. Если соответствующее окно не существует, WinClose просто не буду ничего делать. Это не то, что пример пытается сказать.

В примере делается попытка сказать, что вам не нужно повторять WinTitle и / или WinText целевого окна при использовании WinClose, Это просто экономит вам время ввода (и производительность) в некоторых случаях.
Например:

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 целевого окна для каждой команды управления окнами. Кроме того, скрипты работают лучше, потому что им не нужно снова искать целевое окно после того, как оно было найдено в первый раз.

Другие вопросы по тегам