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
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 ( " +
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 ( "
Некоторые клавиатуры, например Чешская, посылают различные символы при использовании клавиши 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 ( " +
Клавиша эмулируется не менее одного раза, даже если указано 0 повторов.
Удерживать клавишу в нажатом состоянии (обычно полезно только для игр)
Send ( " " ) ; Удерживать клавишу A нажатой
Send ( " " ) ;Отпустить клавишу A
Устанавливает состояние клавиш CapsLock, NumLock или ScrollLock
Send ( "
Send ( "
Send ( "
Если вы хотите указать количество нажатий в переменной, попробуйте
Если вы хотите эмулировать ASCII символ "A" четыре раза, то попробуйте
Большинство клавиатур ноутбуков имеют специальную клавишу Fn. Эта клавиша не может быть эмулирована.
Примечание: если параметр flag равен 1, то интерпретация спецсимволов в параметре keys будет отключена. Это полезно, если вы хотите выслать текст, скопированный из переменной, и выслать текст именно так, как он написан.
Send очень полезна потому, что навигация в Windows может осуществляться без использования мыши.
Например, откройте "Свойства папки" (в панели управления) и попробуйте выполнить следующее:
| Команда | Описание |
|---|---|
| Send ( " | Перейти к следующему элементу управления (кнопка, checkbox и т.д.) |
| Send ( " + | Перейти к предыдущему элементу управления. |
| Send ( " ^ | Перейти к следующей вкладке (на вкладках диалогового окна) |
| Send ( " ^+ | Перейти к предыдущей вкладке. |
| Send ( " | Можно использовать для переключения флажка или нажатия кнопки. |
| Send ( " <+>" ) | Устанавливает галочку (Если это настоящий checkbox.) |
| Send ( " <->" ) | Снимает галочку. |
| Send ( " | Раскрывает дерево папки SysTreeView32. |
Используйте комбинацию 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, так что оно не будет работать.
Некоторые спец-клавиши могут эмулированы, если заключены в фигурные скобки:
Обратите внимание, 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
+
Клавиша эмулируется не менее одного раза, даже если указано 0 повторов.
Удерживать клавишу в нажатом состоянии (обычно полезно только для игр)
;; Удерживать клавишу A нажатой
keybd =0
Устанавливает состояние клавиш CapsLock, NumLock или ScrollLock
keybd =0
keybd =0
Большинство клавиатур ноутбуков имеют специальную клавишу Fn. Эта клавиша не может быть эмулирована.
Например, откройте "Свойства папки" (в панели управления) и попробуйте выполнить следующее:
| Команда | Описание |
|---|---|
| keybd =0 |
+
^
^+
Используйте клавишу Alt+Key для доступа к пунктам меню. Кроме того, откройте Блокнот и выполните следующее:
Send("!f") Эмулирует Alt+f, для доступа в меню Блокнота (Alt+ф в русской локализации). Попробуйте другие клавиши!
| Команда | Описание |
|---|---|
| keybd =0 |
Посмотрите справку Windows, нажав Win+F1 для ознакомления с полным списком сочетаний клавиш, если вы не знаете назначение Alt+F4, PrintScreen, Ctrl+C и так далее.
© Аверин Андрей для Total Commander Image Averin-And@yandex.ru





