Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "GroupAdd", в содержании - "Window Management" - "Window Groups" - "GroupAdd", v1.0.46.03.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

GroupAdd

Добавляет определение окна в группу окон, создавая группу, если это необходимо.

GroupAdd, GroupName [, WinTitle, WinText, Label, ExcludeTitle, ExcludeText]

Параметры

GroupName Имя группы. Если группа не существует, она будет создана. Имена групп не чувствительны к регистру.
WinTitle Заголовок или часть заголовка окна (окон). Может быть пустым. Примечание: хотя команды SetTitleMatchMode и DetectHiddenWindows не влияют на эту команду, но они влияют на другие команды оконных групп, такие как GroupActivate и GroupClose. Они также влияют на использование ahk_group в параметре WinTitle любых других команд.

Чтобы задать окно через его класс, используйте конструкцию ahk_class ТочноеИмяКласса (можно посмотреть программой Window Spy). Чтобы использовать идентификатор процесса (PID), задайте параметр как ahk_pid %ПеременнаяСодержащаяPID%. Чтобы использовать идентификатор окна, задайте параметр как ahk_id %ПеременнаяСодержащаяID%. Чтобы использовать группу окон, задайте параметр как ahk_group ИмяГруппы (т.е. группа может содержать в себе другие группы). Сектор поиска можно сузить, задав несколько критериев, например, My File.txt ahk_class Notepad.
WinText Подстрока из одиночного текстового элемента окна (можно посмотреть программой Window Spy). Скрытые текстовые элементы определяются, если включено определение скрытого текста (команда DetectHiddenText) в то время, когда используются команды GroupActivate, GroupDeactivate и GroupClose.
Label Метка подпрограммы для запуска в случае, если не будет найдено ни одного окна, соответствующего указанным критериям, во время выполнения команды GroupActivate. Подпрограмма запускается так же, как при переходе по команде Gosub. Параметр может быть опущен или оставлен пустым.
ExcludeTitle Окна, чей заголовок включает значение этого параметра, исключаются.
ExcludeText Окна, чей текст включает значение этого параметра, исключаются.

Примечания

Каждое использование этой команды добавляет новое правило в группу. Другими словами, группа состоит из набора критериев, а не фиксированного списка окон. Позже, при выполнении таких команд как GroupActivate, каждое окно на рабочем столе проверяется на соответствие каждому из этих критериев. Если окно соответствует одному из определений, оно считается входящим в группу.

Создание группы полезно, если вы работаете с большим количеством окон, связанных общей задачей, или с приложением, которое создаёт много окон. Задав горячую клавишу для команды GroupActivate, вы сможете переключаться между ними без использования комбинации Alt-Tab или кнопок панели задач.

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

Чтобы включить в группу все окна (за исключением окна рабочего стола, которое имеет заголовок Program Manager), следуйте примеру ниже:

GroupAdd, AllWindows ; Но для версий до 1.0.36.05 используйте вместо этой следующую команду.
GroupAdd, AllWindows, , , , Program Manager

Все оконные команды могут работать с группами окон при указании ahk_group ИмяГруппы в качестве значения параметра WinTitle. Команды WinMinimize, WinMaximize, WinRestore, WinHide, WinShow, WinClose и WinKill действуют на все окна группы. Чтобы воздействовать только на верхнее окно, следуйте примеру ниже:

WinHide % "ahk_id " . WinExist("ahk_group ИмяГруппы")

Напротив, другие команды, такие как WinActivate и IfWinExist, действуют только на верхнее окно группы.

Примеры

; В секции автовыполнения в верхней части скрипта:
GroupAdd, MSIE, ahk_class IEFrame ; Добавить в эту группу только окна Internet Explorer.
return ; Конец секции автовыполнения.

; Назначить горячую клавишу для активации группы, которая позволит
; переключаться между всеми открытыми окнами Internet Explorer (при каждом нажатии).
Numpad1::GroupActivate, MSIE, r

; А это более сложная группа для окон MS Outlook 2002.
; В секции автовыполнения в верхней части скрипта:
SetTitleMatchMode, 2
GroupAdd, mail, Message - Microsoft Word ; Это для писем, редактируемых в данный момент.
GroupAdd, mail, - Message ( ; Это для сообщений, которые уже открыты.
; Нужен дополнительный текст, чтобы избежать активации фантомного окна:
GroupAdd, mail, Advanced Find, Sear&ch for the word(s)
GroupAdd, mail, , Recurrence:
GroupAdd, mail, Reminder
GroupAdd, mail, - Microsoft Outlook
return ; Конец секции автовыполнения.

Numpad5::GroupActivate, mail ; Назначить горячую клавишу для перехода между окнами Outlook.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.