Главная

Назад к списку функции

 

 

ControlSend

Выслать строку символов в элемент.

ControlSend ( "title", "text", controlID, "string" [, flag = 0 ] )

Параметры

title Заголовок/дескриптор/класс окна. См. заголовки и текст окон (расширенные).
text Текст окна.
controlID Идентификатор элемента управления. Смотрите Элементы управления.
string Строка символов, высылаемая в элемент.
flag [необязательный] Изменить интерпретацию клавиш:
0 - (по умолчанию), Текст содержит специальные символы, такие как + указывающие на SHIFT и {LEFT} указывающие на "стрелку влево".
1 - клавиши как есть.

Возвращаемое значение

Успех: Возвращает 1.
Ошибка: Возвращает 0, если окно/элемент не найден.

Примечания

ControlSend работает аналогично Send, но в отличии от последней может отправлять клавиши непосредственно окну/элементу, а не только активному окну.

ControlSend() ненадёжна только для консольных приложений, которые работают иначе, чем обычные окна (видимо проверяется физическое состояние, а не приём сообщений нажатых клавиш). Для обычных окон ControlSend() должна быть более надёжна, чем команда Send(), и подобно ей также высылает Shift, Ctrl, Alt и т.д.

Как уже упоминалось в справке функции Send(), клавиши, которые высылают различные символы при CAPS LOCK и использовании клавиши Shift не могут быть эмулированы. Например, Чешская клавиатура. Хорошим решением будет ControlSetText().

Элементам возможно в первую очередь понадобится указать фокус командой ControlFocus(), при обращении к элементам (controlID), созданным самим скриптом.

Opt("SendKeyDelay",...) изменяет продолжительность паузы между эмулированными нажатиями клавиш.
Opt("SendKeyDownDelay",...) изменяет продолжительность нажатого состояния клавиши, перед тем как отпустить.

См. также

ControlCommandSendControlSetTextControlFocusSendKeyDelay (Опция)SendKeyDownDelay (Опция)

Пример

 

; Запуск блокнота
Run('notepad.exe')

; Ожидание 5 секунд до появление окна блокнота
$hWnd = WinWait("[CLASS:Notepad]", "", 5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Высылает строку символов в элемент
ControlSend($hWnd, "", "Edit1", "Эта строка выслана в элемент Edit")

; Закрывает блокнот.
WinClose($hWnd)

Категория: Описание функций AutoIt Добавил: Grek (24.12.2014) | Теги: ControlSend
Всего комментариев: 0