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

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

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

Control -Autohotkey

Производит разнообразные изменения в контролах (элементах управления в окне).

Control, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]

Параметры

Cmd, Value См. список ниже.
Control Может задаваться как ClassNN (имя класса и номер данного экземпляра) или как имя/текст контрола. Все эти значения можно определить, используя программу Window Spy. При использовании имени/текста параметры их поиска можно задавать командой SetTitleMatchMode. Если параметр пустой, используется верхний контрол окна.

Чтобы указать контрол через его HWND (window handle, идентификатор окна), оставьте параметр Control пустым и задайте ahk_id %ControlHwnd% как значение параметра WinTitle - это работает также и для скрытых контролов, даже если обнаружение скрытых окон (команда DetectHiddenWindows) не включено. HWND, как правило, узнаётся через команды ControlGet Hwnd, MouseGetPos или DllCall.
WinTitle Заголовок или часть заголовка окна (параметры поиска можно задавать командой SetTitleMatchMode). Если этот и следующие 3 параметра опущены, будет использовано последнее найденное окно. Если параметр задан буквой А и следующие 3 параметра опущены, будет использовано активное окно. Чтобы задать окно через его класс, используйте конструкцию ahk_class ТочноеИмяКласса (можно посмотреть программой Window Spy). Чтобы использовать идентификатор процесса (PID), задайте параметр как ahk_pid %ПеременнаяСодержащаяPID%. Чтобы использовать группу окон, задайте параметр как ahk_group ИмяГруппы. Чтобы использовать идентификатор окна, задайте параметр как ahk_id %ПеременнаяСодержащаяID%. Сектор поиска можно сузить, задав несколько критериев, например, My File.txt ahk_class Notepad.
WinText Подстрока из одиночного текстового элемента окна (можно посмотреть программой Window Spy). Скрытые текстовые элементы определяются, если включено определение скрытого текста (команда DetectHiddenText).
ExcludeTitle Окна, чей заголовок включает значение этого параметра, исключаются.
ExcludeText Окна, чей текст включает значение этого параметра, исключаются.

Cmd, Value

Параметры Cmd и Value зависят друг от друга, их использование показано ниже.

Check включает (отмечает) элемент переключателя (radio button) или флажок (checkbox).

Uncheck выключает указанное выше.

Enable разблокирует контрол, если он был блокирован ранее.

Disable блокирует контрол.

Show показывает контрол, если он был спрятан.

Hide прячет контрол. Если вы также хотите запретить работу горячей клавиши контрола (подчёркнутая буква), блокируйте контрол командой Control Disable.

Style,N или ExStyle,N изменяет стиль или расширенный стиль контрола. Действие зависит от значения N. Если оно начинается со знака плюс или минус, стиль (стили) добавляются или удаляются. Если оно начинается с символа каретки (^), каждый из указанных далее в N стилей переключается в противоположное состояние. Если N начинается с цифры, стиль контрола заменяется на указанный в N. Переменная ErrorLevel равна 1, если указанное окно или контрол не найдены или если стиль не может быть применён.

Некоторые изменения стилей требуют перерисовки всего окна с помощью команды WinSet Redraw. Некоторые номера стилей можно посмотреть в статье "Стили, используемые командами Gui и GuiControl" ("Styles Usable by the Gui and GuiControl Commands"). Пример:

Control, Style, ^0x800000, Edit1, WinTitle ; Переключить стиль WS_BORDER в противоположное состояние.

ShowDropDown разворачивает выпадающий список (ComboBox).

HideDropDown сворачивает выпадающий список.

tableft [, Count] перемещается влево по вкладкам в контроле SysTabControl32. Если число шагов (Count) опущено или пустое, оно считается равным 1. Чтобы не перебирать вкладки, а выбрать нужную сразу по номеру, замените 5 в примере ниже числом на 1 меньшим нужного номера (0 выбирает первую и т.д.):

SendMessage, 0x130C, 5,, SysTabControl321, WinTitle ; 0x130C означает сообщение TCM_SETCURSEL.

TabRight [, Count] - то же, что выше, только вправо.

Add, String добавляет строку, указанную в String, в качестве нижней строки в контролы-списки ListBox и ComboBox (с версии v1.0.42 также поддерживаются TListBox, TComboBox и, возможно, другие).

Delete, N удаляет строку с номером N из контролов ListBox и ComboBox (с версии v1.0.42 также поддерживаются TListBox, TComboBox и, возможно, другие). Нумерация с 1.

Choose, N выбирает (выделяет) строку с номером N в контролах ListBox и ComboBox (с версии v1.0.42 также поддерживаются TListBox, TComboBox и, возможно, другие). Нумерация с 1. Чтобы выбрать все строки (если контрол это поддерживает), следуйте примеру ниже:

PostMessage, 0x185, 1, -1, ListBox1, WinTitle ; Выбрать все строки в ListBox. 0x185 - сообщение LB_SETSEL.

ChooseString, String выбирает строку в контролах ListBox и ComboBox, начало которой совпадает со значением String (с версии v1.0.42 также поддерживаются TListBox, TComboBox и, возможно, другие). При поиске регистр не учитывается.

EditPaste, String вставляет строку со значением String в контрол Edit (текстовое поле/область) в место, где текстовый курсор.

ErrorLevel

Нуль, если команда выполнена успешно. Иначе 1.

Примечания

Для повышения надёжности после каждого выполнения этой команды автоматически делается пауза (кроме изменения стилей). Длина этой паузы может быть изменена командой SetControlDelay.

Чтобы выяснить имя контрола под курсором мыши, используйте команду MouseGetPos.

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

Пример

Control, HideDropDown, , ComboBox1, Some Window Title
Автор перевода: YMP
Настоящее имя переводчика: Юрий Попов
Источник: http://www.script-coding.com/AutoHotkey/Control.html
Под редакцией ahk-wiki.ru от 21.08.19