Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "WinClose", в содержании - "Window Management" - "WinClose", v1.0.46.07.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Закрывает указанное окно.
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, Калькулятор
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.