Autoit эмуляция нажатия клавиш

Quick reference for the Send( "keys" [, flag] ) Command. ^ Ctrl ! Alt + Shift # Win

AutoIt can send all ASCII and Extended ASCII characters (0-255), to send UNICODE characters you must use the "ASC" option and the code of the character you wish to Send(see below).

To send the ASCII value A (same as pressing ALT+065 on the numeric keypad)

(When using 2 digit ASCII codes you must use a leading 0, otherwise an obsolete 437 code page is used).

To send UNICODE characters enter the character code, for example this sends a Chinese character

Single keys can also be repeated, e.g.

Send ( " " ) ; Presses the DEL key 4 times
Send ( " " ) ; Sends 30 ‘S’ characters
Send ( " + " ) ; Presses Shift + Tab 4 times

To hold a key down

Send ( " " ) ; Holds the A key down
Send ( "
" ) ; Releases the A key

If you with to use a variable for the count, try

If you wish to send the ASCII value A four times, then try

Most laptop computer keyboards have a special Fn key. This key cannot be simulated.

Note, by setting the flag parameter to 1 the "keys" parameter is sent RAW. This is useful when you want to send some text copied from a variable and you want the text sent exactly as written.

Send is quite useful because windows can be navigated without needing a mouse.

For example, open Folder Options (in the control panel) and try the following:

Send("") Navigate to next control (button, checkbox, etc)
Send("+") Navigate to previous control.
Send("^") Navigate to next WindowTab (on a Tabbed dialog window)
Send("^+") Navigate to previous WindowTab.
Send("") Can be used to toggle a checkbox or click a button.
Send("<+>") Usually checks a checkbox (if it’s a "real" checkbox.)
Send("<->") Usually unchecks a checkbox.
Send("") Recursively expands folders in a SysTreeView32.

Use Alt-key combos to access menu items. Also, open Notepad and try the following:

Send("!f") Send Alt+f, the access key for Notepad’s file menu. Try other letters!
Send("") Move down a menu.
Send("") Move up a menu.
Send("") Move leftward to new menu or expand a submenu.
Send("") Move rightward to new menu or collapse a submenu.

See Windows’ Help–press Win+F1–for a complete list of keyboard shortcuts if you don’t know the importance of Alt+F4, PrintScreen, Ctrl+C, and so on.

Эмулирует нажатие клавиш в активном окне.

Send ( "keys" [, flag = 0 ] )

keys Последовательность нажимаемых клавиш.
flag [необязательный] Изменяет интерпретацию параметра keys:
0 – (по умолчанию), текст содержит специальные символы, такие как + и !, указывающие на нажатия Shift и Alt.
1 – клавиши как есть (спец-символы <>^+! как обычный текст).

AutoIt может эмулировать нажатия всех символов ASCII и дополнительных ASCII символов (0-255), чтобы отправить символы UNICODE вы должны использовать опцию "ASC" и код символа, который нужно эмулировать (см. в таблице ниже).

Синтаксис команды Send аналогичен одноимённой в ScriptIt и команде "SendKeys" в Visual Basic. Символы эмулируются как есть, за исключением следующих:

‘!’
Это указывает AutoIt эмулировать клавишу Alt, поэтому Send ( "This is text!a" ) выполнит ввод текста "This is text" и затем нажмёт "Alt+a".

Обратите внимание: некоторые программы очень разборчивы в регистре символов и клавиш Alt, т.е. "!A" отличается от "!a". Первый эмулирует Alt+Shift+A, второй Alt+a. Если сомневаетесь, используйте нижний регистр символов!

‘+’
Это указывает AutoIt эмулировать клавишу Shift, поэтому Send ( "Hell+o" ) выполнит ввод текста "HellO". Send ( "!+a" ) эмулирует нажатие "Alt+Shift+a".

‘^’
Это указывает AutoIt эмулировать клавишу Ctrl, поэтому Send ( "^!a" ) эмулирует нажатие "Ctrl+Alt+a".

Обратите внимание: некоторые программы очень разборчивы в регистре символов и клавиш Ctrl, т.е. "^A" отличается от "^a". Первый эмулирует Ctrl+Shift+A, второй Ctrl+a. Если сомневаетесь, используйте нижний регистр символов!

‘#’
"Решётка" теперь эмулирует клавишу Windows; поэтому, Send ( "#r" ) эмулирует нажатие Win+r, который запускает диалоговое окно "Выполнить".

Вы можете использовать SendCapslockMode, чтобы отключить CAPS LOCK перед выполнением функции Send и восстановить после выполнения.
Однако, если пользователь удерживает нажатой клавишу Shift, когда выполняется функция Send, то текст может быть эмулирован в верхнем регистре.
Один из способов обхода данной проблемы – Send ( " " ) перед последующим вызовом Send.

Читайте также:  Почему батареи разной температуры в комнате

Некоторые клавиатуры, например Чешская, посылают различные символы при использовании клавиши Shift во включённом и выключенном состоянии Caps Lock. Реализация Send в AutoIt такова, что символы В ВЕРХНЕМ РЕГИСТРЕ отсылаются так, как если бы был нажат Shift, так что оно не будет работать.

Некоторые спец-клавиши могут эмулированы, если заключены в фигурные скобки:

Обратите внимание, Windows не позволяет эмулировать сочетание Ctrl+Alt+Del!

Команда (если flag=0) Результат эмуляции
!
#
+
^
<
<>> >
SPACE (пробел)
Enter основной клавиатуры
ALT
или Backspace
или Delete
Стрелка вверх
Стрелка вниз
Стрелка влево
Стрелка вправо
Home
End
или Esc (Escape)
или Insert (Ins)
PageUp
PageDown
Функциональные клавиши
Tab
Клавиша Print Screen (Prt Scr SysRq)
Левая клавиша Windows
Правая клавиша Windows
Num Lock (on/off/toggle) (включить/выключить/переключить)
Caps Lock (on/off/toggle) (включить/выключить/переключить)
Scroll Lock (on/off/toggle) (включить/выключить/переключить)
для Ctrl+Break
Pause
Цифры (цифровая клавиатура)
* (цифровая клавиатура)
+ (цифровая клавиатура)
– (цифровая клавиатура)
/ (цифровая клавиатура)
. (цифровая клавиатура)
Enter (цифровая клавиатура)
Клавиша Windows App
Левый Alt
Правый Alt
Левый Ctrl
Правый Ctrl
Левый Shift
Правый Shift
Клавиша спящего режима компьютера
Удерживать Alt в нажатом состоянии, до
Удерживать Shift в нажатом состоянии, до
Удерживать Ctrl в нажатом состоянии, до
Удерживать левый Windows в нажатом состоянии, до
Удерживать правый Windows в нажатом состоянии, до
Выслать клавишу, указав её номер
Только в 2000/XP: Кнопка "назад" в окне просмотра
Только в 2000/XP: Кнопка "вперёд" в окне просмотра
Только в 2000/XP: Кнопка "обновить" в окне просмотра
Только в 2000/XP: Кнопка "остановить" в окне просмотра
Только в 2000/XP: Кнопка "поиск" в окне просмотра
Только в 2000/XP: Кнопка "избранное" в окне просмотра
Только в 2000/XP: Запускает браузер и переходит на домашнюю страницу
Только в 2000/XP: Выключить звук
Только в 2000/XP: Уменьшить звук (на 4% от 100)
Только в 2000/XP: Увеличить звук (на 4% от 100)
Только в 2000/XP: Следующий трек в медиа-плеере
Только в 2000/XP: Предыдущий трек в медиа-плеере
Только в 2000/XP: Остановить воспроизведение в медиа-плеере
Только в 2000/XP: Воспроизведение / пауза в медиа-плеере
Только в 2000/XP: Запуск почтовой программы
Только в 2000/XP: Запуск медиа плеера
Только в 2000/XP: Запуск первой программы пользователя
Только в 2000/XP: Запуск второй программы пользователя

Чтобы эмулировать ASCII символ A (тоже, что нажатие ALT+065 на цифровой клавиатуре)

(Когда используется двухзначный код ASCII вы должны подставить в начало 0, иначе будет использована устаревшая кодовая страница 437).

Чтобы эмулировать символ UNICODE вводите код символа (десятичный или шестнадцатеричный), например это эмулирует китайский символ

Одиночную эмуляцию можно повторить, например:

Send ( " " ) ; Эмулирует нажатие клавиши Del 4 раза
Send ( " " ) ; Эмулирует нажатие клавиши ‘S’ 30 раз
Send ( " + " ) ; Эмулирует нажатие Shift+Tab 4 раза

Клавиша эмулируется не менее одного раза, даже если указано 0 повторов.

Удерживать клавишу в нажатом состоянии (обычно полезно только для игр)

Send ( " " ) ; Удерживать клавишу A нажатой
Send ( "
" ) ;Отпустить клавишу A

Устанавливает состояние клавиш CapsLock, NumLock или ScrollLock

Send ( " " ) ;Включает NumLock
Send ( " " ) ;Выключает CapsLock
Send ( " " ) ;Переключает состояние ScrollLock

Если вы хотите указать количество нажатий в переменной, попробуйте

Если вы хотите эмулировать ASCII символ "A" четыре раза, то попробуйте

Большинство клавиатур ноутбуков имеют специальную клавишу Fn. Эта клавиша не может быть эмулирована.

Примечание: если параметр flag равен 1, то интерпретация спецсимволов в параметре keys будет отключена. Это полезно, если вы хотите выслать текст, скопированный из переменной, и выслать текст именно так, как он написан.

Send очень полезна потому, что навигация в Windows может осуществляться без использования мыши.
Например, откройте "Свойства папки" (в панели управления) и попробуйте выполнить следующее:

Команда Описание
Send ( " " ) Перейти к следующему элементу управления (кнопка, checkbox и т.д.)
Send ( " + " ) Перейти к предыдущему элементу управления.
Send ( " ^ " ) Перейти к следующей вкладке (на вкладках диалогового окна)
Send ( " ^+ " ) Перейти к предыдущей вкладке.
Send ( " " ) Можно использовать для переключения флажка или нажатия кнопки.
Send ( " <+>" ) Устанавливает галочку (Если это настоящий checkbox.)
Send ( " <->" ) Снимает галочку.
Send ( " " ) Раскрывает дерево папки SysTreeView32.
Читайте также:  Ростелеком gpon ont rv6699 логин и пароль

Используйте комбинацию Alt+клавиша для доступа к пунктам меню. Также, откройте Блокнот и выполните следующее:

Команда Описание
Send ( "!f" ) Эмулирует Alt+f, для доступа к меню Блокнота (Alt+ф в русской локализации). Попробуйте другие клавиши! (При нажатии Alt эти буквы становятся подчёркнутыми).
Send ( " " ) Перемещение вниз по меню.
Send ( " " ) Перемещение вверх по меню.
Send ( " " ) Перемещение влево к новому меню или раскрыть подменю.
Send ( " " ) Перемещение вправо к новому меню или свернуть подменю.

Смотрите справку Windows, нажав Win+F1 для просмотра полного списка горячих клавиш, если вы всё ещё не знаете их назначение, таких как Alt+F4, PrintScreen, Ctrl+C и т.д.

При запуске скрипта на удаленном компьютере через программу, такую как psexec (www.sysinternals.com) или beyondexec (www.beyondlogic.org) необходимо, особенно при отправке данных программе запущенной скриптом с функцией Run, использовать ControlSend или другие функции ControlXXX, чтобы непосредственно взаимодействовать с элементами управления. Эмуляция не сработает даже с Opt("SendAttachMode",1).
Использования ключа -s при передаче может позволить больше прав на удалённом компьютере.

Opt("SendKeyDelay". ) изменяет продолжительность паузы между эмулированными нажатиями клавиш.
Opt("SendKeyDownDelay". ) изменяет продолжительность нажатого состояния клавиши, перед тем как её отпустить.
Установите оба параметра "SendKeyDelay" и "SendKeyDownDelay" равным 0, чтобы полностью устранить все задержки при эмуляции нажатий. Это может потребоваться при определенных обстоятельствах, например, при блокировке системы ("#l") это может быть необходимо для устранения задержек, чтобы предохранить клавишу WIN от нажатого состояния.

; Эмуляция нажатия комбинации клавиш Win + R
; Send("#r")
Send ( "#к" ) ; если русский язык по умолчанию при загрузке OS, то вместо "#r" нужно "#к", либо в скрипте временно переключать на англоязычную раскладку.

; в англоязычном примере окно называется Run
$hWnd = WinWait ( "Запуск программы" , "" , 5 )
If Not $hWnd Then
MsgBox ( 4096 , ‘Сообщение’ , ‘Окно не найдено, завершаем работу скрипта’ )
Exit
EndIf
Sleep ( 100 )

; Эмуляция ввода текста notepad.exe и нажатие Enter
Send ( "notepad.exe " )

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

Send ( "Сегодняшняя дата и время " )

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

; При закрытии появится окно с предложением сохранить файл, classname вызываемого окна "#32770", эмулируем нажатие "TAB" для перемещения фокуса на вторую кнопку и "ENTER", чтобы отказаться от сохранения.
WinWaitActive ( "[CLASS:#32770]" )
Sleep ( 500 )
Send ( " " )

Дополнение №1

Синтаксис команды keybd аналогичен ScriptIt и команде "SendKeys" в Visual Basic. В keybd пробел заменяется символом . Символы эмулируются как есть, за исключением следующих:

‘!’
Это указывает AutoIt эмулировать клавишу Alt, поэтому " keybd=0

This № is № text!a " выполнит ввод текста "This is text" и затем нажмёт "Alt+a".

Обратите внимание: некоторые программы очень разборчивы в регистре символов и клавиш Alt, т.е. "!A" отличается от "!a". Первый эмулирует Alt+Shift+A, второй Alt+a. Если сомневаетесь, используйте нижний регистр символов!

‘+’
Это указывает AutoIt эмулировать клавишу Shift, поэтому keybd=0

Hell+o выполнит ввод текста "HellO". keybd=0

!+a" эмулирует нажатие "Alt+Shift+a".

‘^’
Это указывает AutoIt эмулировать клавишу Ctrl, поэтому keybd=0

^!a эмулирует нажатие "Ctrl+Alt+a".

Обратите внимание: некоторые программы очень разборчивы в регистре символов и клавиш Ctrl, т.е. "^A" отличается от "^a". Первый эмулирует Ctrl+Shift+A, второй Ctrl+a. Если сомневаетесь, используйте нижний регистр символов!

‘#’
"Решётка" теперь эмулирует клавишу Windows; поэтому, keybd=0

#r эмулирует нажатие Win+r, который запускает диалоговое окно "Выполнить".

Некоторые клавиатуры, например Чешская, посылают различные символы при использовании клавиши Shift во включённом и выключенном состоянии Caps Lock. Реализация Send в AutoIt такова, что символы В ВЕРХНЕМ РЕГИСТРЕ отсылаются так, как если бы был нажат Shift, так что оно не будет работать.

Читайте также:  Группировка вкладок в firefox

Некоторые спец-клавиши могут эмулированы, если заключены в фигурные скобки:

Обратите внимание, Windows не позволяет эмулировать сочетание Ctrl+Alt+Del!

Команда Результат эмуляции
!
#
+
^
<
<>> >
SPACE (пробел)
Enter основной клавиатуры
ALT
или Backspace
или Delete
Стрелка вверх
Стрелка вниз
Стрелка влево
Стрелка вправо
Home
End
или Esc (Escape)
или Insert (Ins)
PageUp
PageDown
Функциональные клавиши
Tab
Клавиша Print Screen (Prt Scr SysRq)
Левая клавиша Windows
Правая клавиша Windows
Num Lock (on/off/toggle) (включить/выключить/переключить)
Caps Lock (on/off/toggle) (включить/выключить/переключить)
Scroll Lock (on/off/toggle) (включить/выключить/переключить)
для Ctrl+Break
Pause
Цифры (цифровая клавиатура)
* (цифровая клавиатура)
+ (цифровая клавиатура)
– (цифровая клавиатура)
/ (цифровая клавиатура)
. (цифровая клавиатура)
Enter (цифровая клавиатура)
Клавиша Windows App
Левый Alt
Правый Alt
Левый Ctrl
Правый Ctrl
Левый Shift
Правый Shift
Клавиша спящего режима компьютера
Удерживать Alt в нажатом состоянии, до
Удерживать Shift в нажатом состоянии, до
Удерживать Ctrl в нажатом состоянии, до
Удерживать левый Windows в нажатом состоянии, до
Удерживать правый Windows в нажатом состоянии, до
Выслать клавишу, указав её номер
Только в 2000/XP: Кнопка "назад" в окне просмотра
Только в 2000/XP: Кнопка "вперёд" в окне просмотра
Только в 2000/XP: Кнопка "обновить" в окне просмотра
Только в 2000/XP: Кнопка "остановить" в окне просмотра
Только в 2000/XP: Кнопка "поиск" в окне просмотра
Только в 2000/XP: Кнопка "избранное" в окне просмотра
Только в 2000/XP: Запускает браузер и переходит на домашнюю страницу
Только в 2000/XP: Выключить звук
Только в 2000/XP: Уменьшить звук (на 4% от 100)
Только в 2000/XP: Увеличить звук (на 4% от 100)
Только в 2000/XP: Следующий трек в медиа-плеере
Только в 2000/XP: Предыдущий трек в медиа-плеере
Только в 2000/XP: Остановить воспроизведение в медиа-плеере
Только в 2000/XP: Воспроизведение / пауза в медиа-плеере
Только в 2000/XP: Запуск почтовой программы
Только в 2000/XP: Запуск медиа плеера
Только в 2000/XP: Запуск первой программы пользователя
Только в 2000/XP: Запуск второй программы пользователя

(Когда используется двухзначный код ASCII вы должны подставить в начало 0, иначе будет использована устаревшая кодовая страница 437).

Чтобы эмулировать символ UNICODE вводите код символа (десятичный или шестнадцатеричный), например это эмулирует китайский символ

Одиночную эмуляцию можно повторить, например:

;; Эмулирует нажатие клавиши Del 4 раза
keybd =0

;; Эмулирует нажатие клавиши ‘S’ 30 раз
keybd =0

+ ;; Эмулирует нажатие Shift+Tab 4 раза

Клавиша эмулируется не менее одного раза, даже если указано 0 повторов.

Удерживать клавишу в нажатом состоянии (обычно полезно только для игр)

;; Удерживать клавишу A нажатой
keybd =0

;; Отпустить клавишу A

Устанавливает состояние клавиш CapsLock, NumLock или ScrollLock

;; Включает NumLock
keybd =0

;; Выключает CapsLock
keybd =0

;; Переключает состояние ScrollLock

Большинство клавиатур ноутбуков имеют специальную клавишу Fn. Эта клавиша не может быть эмулирована.

Например, откройте "Свойства папки" (в панели управления) и попробуйте выполнить следующее:

Команда Описание
keybd =0

Перейти к следующему элементу управления (кнопка, checkbox и т.д.) keybd =0

+

Перейти к предыдущему элементу управления. keybd =0

^

Перейти к следующей вкладке (на вкладках диалогового окна) keybd =0

^+

Перейти к предыдущей вкладке. keybd =0

Можно использовать для переключения флажка или нажатия кнопки. keybd =0

Устанавливает галочку (Если это настоящий checkbox.) keybd =0

Снимает галочку. keybd =0

Раскрыть дерево папки SysTreeView32.

Используйте клавишу Alt+Key для доступа к пунктам меню. Кроме того, откройте Блокнот и выполните следующее:
Send("!f") Эмулирует Alt+f, для доступа в меню Блокнота (Alt+ф в русской локализации). Попробуйте другие клавиши!

Команда Описание
keybd =0

Перемещение вниз по меню. keybd =0

Перемещение вверх по меню. keybd =0

Перемещение влево к новому меню или раскрыть подменю. keybd =0

Перемещение вправо к новому меню или свернуть подменю.

Посмотрите справку Windows, нажав Win+F1 для ознакомления с полным списком сочетаний клавиш, если вы не знаете назначение Alt+F4, PrintScreen, Ctrl+C и так далее.

© Аверин Андрей для Total Commander Image Averin-And@yandex.ru

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector