Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

WinClose -Autohotkey

Закрывает указанное окно.

WinClose [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText]

Параметры

WinTitle Заголовок или часть заголовка окна (метод поиска можно задавать командой SetTitleMatchMode). Если этот и 3 других оконных параметра пустые или опущены, будет использовано последнее найденное окно. Если параметр задан буквой А и 3 других оконных параметра пустые или опущены, будет использовано активное окно. Чтобы задать окно через его класс, используйте конструкцию ahk_class ТочноеИмяКласса (можно посмотреть программой Window Spy). Чтобы использовать идентификатор процесса (PID), задайте параметр как ahk_pid %ПеременнаяСодержащаяPID%. Чтобы закрыть группу окон, задайте параметр как ahk_group ИмяГруппы (WinText, ExcludeTitle и ExcludeText должны быть в этом случае пустыми). Чтобы использовать идентификатор окна, задайте параметр как ahk_id %ПеременнаяСодержащаяID%. Сектор поиска можно сузить, задав несколько критериев, например, My File.txt ahk_class Notepad.
WinText Подстрока из одиночного текстового элемента окна (можно посмотреть программой Window Spy). Скрытые текстовые элементы определяются, если включено определение скрытого текста (команда DetectHiddenText).
SecondsToWait Время ожидания закрытия окна в секундах (может быть числом с плавающей точкой или выражением). Если опущен или пустой, команда не будет ждать. Если 0, команда ждёт 500 мс. Если окно не закроется в течение заданного времени, выполнение скрипта будет продолжено. Эта команда не устанавливает значения ErrorLevel, так что используйте команды IfWinExist или WinWaitClose, если вам нужно знать наверняка, закрылось ли окно. В период, когда команда находится в ожидании, новые потоки могут запускаться через горячие клавиши, пункты меню или таймеры.
ExcludeTitle Окна, чей заголовок включает значение этого параметра, исключаются.
ExcludeText Окна, чей текст включает значение этого параметра, исключаются.

Примечания

Эта команда посылает в окно закрывающее сообщение. Результат зависит от окна (оно может попросить сохранить данные и т.п.).

Если активное в данный момент окно подходит под указанные в команде параметры, будет закрыто именно оно, а не какое-либо из окон ниже его, даже если оно тоже совпадает с этими параметрами. Как общее правило, если несколько окон отвечают заданным критериям, закрыто будет самое верхнее (последнее активное) окно.

Эта команда работает с самым верхним окном всегда, кроме случая, когда WinTitle задан как ahk_group ИмяГруппы, в этом случае она воздействует на все окна группы.

WinClose посылает в окно сообщение WM_CLOSE, которое является отчасти принудительным способом закрытия окна. Альтернативой может быть следующий метод. Его результат может различаться для разных окон, т.к. он производит тот же эффект, что и нажатие Alt-F4 или щелчок по закрывающей кнопке в строке заголовка окна:

PostMessage, 0x112, 0xF060,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

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

Заголовки и текст окон чувствительны к регистру. Скрытые окна не определяются, если только это не задано командой DetectHiddenWindows.

Пример

IfWinExist, Безымянный - Блокнот WinClose ; Использует окно, найденное выше. else WinClose, Калькулятор
Автор перевода: YMP
Настоящее имя переводчика: Юрий Попов
Источник: http://www.script-coding.com/AutoHotkey/WinClose.html
Под редакцией ahk-wiki.ru от 21.08.19