- Объект WScript.Shell метод SendKeys — имитация нажатия клавиш
- SendKeys – имитация нажатия клавиш – теоретические основы
- SendKeys – имитация нажатия клавиш – приступаем к программированию
- Key Manager
- Снимки экрана
- Видеопримеры
- Как пользоваться программой
- Установка программы
- Работа с программой
- Управление действиями и горячие клавиши
Объект WScript.Shell метод SendKeys — имитация нажатия клавиш
Всем привет, с вами автор блога scriptcoding.ru. Сегодня мы затронем такую тему как имитация нажатия клавиш программными средствами с помощью метода SendKeys класса WScript.Shell.
SendKeys – имитация нажатия клавиш – теоретические основы
Метод SendKeys, который позволяет имитировать нажатие клавиш и их комбинаций. Метод SendKeys объекта WScript.Shell является по своей природе слепым, так как он не позволяет указать то приложение, которому назначен ввод с клавиатуры, то есть, если мы сделаем попытку имитировать ввод фразы «привет мир», то она будет обрабатываться лишь тому приложениею, которое в данный момент являются активным. Если активным будет текстовый редактор – то в нем отобразится заданный текст, если антивирусная программа – то, скорее всего, никакой активности не произойдет.
Что бы использовать функцию Wscript SendKeys, нужно объявить переменную, которая будет хранить ссылку на объект WScript.Shell, а уже через эту переменную можно будет вызвать SendKeys.
Общая логика работы:
SendKeys (строка) – Видим, что мы в качестве аргумента должны передать строковое выражение, которое будет хранить имя клавиши или сочетание.
Что бы ввести просто символ или набор символов, мы всего-навсего прописываем их как строку, например: SendKeys(«привет мир»). Для ввода специальных клавиш (например, Enter, стрелки, функциональные клавиши и так далее), их название нужно заключить в фигурные скобки <>.
Ниже приведен список функциональных клавиш и их обозначение:
- BACKSPACE —
, или - BREAK —
- CAPS LOCK —
- DEL или DELETE —
или - СТРЕЛКА ВНИЗ —
- END —
- ENTER —
или
Если нужно указать сочетание специальных клавиш, то следует использовать следующие коды:
Также стоит помнить, что для ввода символов +, ^, %,
, (, ) , <, >, [, ] их также нужно заключить в фигурные скобки.
Если есть необходимость имитации нажатия клавиши несколько раз подряд, то после нее через пробел прописывается количество, например:
SendKeys – имитация нажатия клавиш – приступаем к программированию
Хорошо, с теорией разобрались, теперь давайте приступим к программированию. Давайте для начала рассмотрим следующий пример программного кода на языке vbscript:
Видим, что тут мы создали массив символов my_arr(16), их количество составляет 17, так как нумерация элементов массива начинается с нуля. Вы можете возразить, а зачем формировать массив, если все можно прописать в одном строковом значении ? Верно, но, цель сценария не просто отправить коды клавиш, а сделать задержку для каждого символа. Мы видим, что с помощью массива идет обработка каждого элемента, он передается методу SendKeys WScript Shell объекта, после идет задержка в 500 миллисекунд (WScript.Sleep 500), и так для каждого символа. Перед выполнением метода мы запускаем блокнот (WshShell.Run «Notepad.exe», 1) с помощью метода Run (подробно про метод Run я написал в статье «Объект WScript.Shell — метод Run»), поэтому, команды будут передаваться текстовому редактору. Как только все команды будут выполнены, появится сообщение (MsgBox «Конец теста!»), которое проинформирует, что сценарий завершил свою работу. На практике это выглядит так:
- Запускается блокнот
- Постепенно вводится текст «это»
- Делаем два раза имитацию нажатия клавиши Enter (
) - Постепенно вводится текст «простой»
- Нажимается два раза клавиша Enter (
) - Постепенно вводится текст «текст»
- Появляется сообщение «Конец теста!»
А вот аналогичный пример, но уже на языке jscript:
В примере на jscript я мог использовать более лаконичный стиль программирования для массива, но, решил этого не делать, что бы было наглядней видно, что и как. Важно, пока не появится сообщение о том, что сценарий выполнил работу, не переключатся на другие приложения , так как это может привести к неожиданным последствиям.
А вот еще один пример на vbscript :
В этом примере мы уже будем направлять с помощью метода SendKeys WScript Shell класса команды программе калькулятор – простая арифметика (100/2*0.5). В конце мы выполним имитацию нажатия комбинации клавиш «ALT + F4«, что бы закрыть калькулятор и выведем сообщение — » Операция выполнена! «. Далее мы снова попытаемся отправить в систему комбинацию «CTRL + ALT + DEL» (запуск диспетчера задач), но, ничего не выйдет, видимо эта комбинация не работает из-за соображений безопасности.
Ну и пример на языке jscript :
И так, давайте все подытожим… В этой статье мы рассмотрели функцию SendKeys класса WScript Shell, которая позволяет создавать имитацию нажатия клавиш, мы написали четыре программных кода – два на языке vbscript и два на языке jscript. Помним, что программный код работает под управлением сервера сценариев Windows Script Host.
Спасибо за внимание. Автор блога Владимир Баталий
Key Manager
Key Manager — это более функциональный вариант программы Key Remapper, которая, кроме переназначения клавиш и кнопок мыши, содержит множество других полезных функций.
Например, Key Manager позволяет переназначать комбинации клавиш и кнопок мыши, последовательности нажатий, долгое нажатие (нажатие и удержание). Позволяет представлять действия в виде всплывающих меню, которые можно открывать по горячим клавишам; выполнять, записывать и редактировать макросы нажатий (последовательности нажатий); впечатывать или вставлять текст (в том числе форматированный), мгновенно заполнять формы сайтов; запускать программы и открывать сайты (в параметрах адреса которых можно указать текущий выделенный текст); менять раскладку и регистр выделенного текста; управлять питанием монитора, компьютера; регулировать громкость и устанавливать определенный уровень; выполнять действия над окнами (перемещение, установка конкретного размера) и многое другое.
Key Manager — открывает новые возможности клавиатуры и мыши, позволяя значительно сэкономить время и силы при работе за компьютером. Благодаря гибкому интерфейсу, возможно создавать различные действия и выполнять их по нажатию горячих клавиш, кнопок мыши или комбинаций, а также представлять их в виде всплывающего меню. Кроме этого программа имеет мощные средства по переопределению клавиш и кнопок мыши и их блокировке. Переопределение и работу действий можно ограничить или разрешить только в определенных программах и/или окнах.
Key Manager позволяет назначить на обычное, длительное (нажатие и удержание) и последовательное нажатие клавиш, кнопок мыши, прокрутку колеса и комбинации с клавишами модификаторами, а также всплывающее меню следующие действия:
отображение всплывающего меню с другими, определенными Вами действиями;
вставку определенного Вами текста в обычном или RTF формате в любую программу с возможностью вставлять текущие дату, время, текущий выделенный текст и другие данные на основе шаблонов;
нажатие и блокировку клавиш, комбинаций клавиш, нажатие кнопок и осуществление прокрутки колеса мыши;
запись и выполнение макросов нажатий клавиш и кнопок мыши с возможностью задавать задержки между нажатиями;
выполнять клики, позиционировать и смещать указатель мыши относительно всего экрана, активного окна и предыдущей позиции, с возможностью возвращать указатель в изначальное положение после выполнения действия (добавлено в версии 1.10). Подробнее смотрите во втором видео ниже.
запуск любой программы или открытие файла или папки (для создания достаточно просто перетащить ярлык, папку или файл в окно действия);
открытие определенной Вами веб-страницы с возможностью использования в адресе текстовых шаблонов, которые позволяют получить и подставить текущий выделенный текст, содержимое буфера обмена и многое другое;
мгновенное создание электронного письма, также с возможностью использования шаблонов;
выполнение действий над всеми окнами или над активным (закрыть, свернуть, развернуть на весь экран, восстановить, скрыть, показать, перерисовать, переместить, изменить размер);
управление питанием компьютера, питанием монитора, управление звуком компьютера, запуск хранителя экрана и многое другое.
Также в программе есть возможность представить практически любую клавишу или кнопку мыши как пользовательский модификатор и использовать (подобно Alt и Ctrl) в комбинации с другими клавишами, кнопками мыши и модификаторами.
Языки интерфейса: |
| |||||
Системные требования: | Windows 10/8.1/8/7/Vista/2008/2003/XP/2000 |
Снимки экрана
Видеопримеры
Переназначение комбинаций клавиш
Пример замены комбинаций Ctrl + Insert (Копировать), Shift + Insert (Вставить), Shift + Delete (Вырезать) и Alt + Backspace (Отменить) в устаревшей программе Borland Turbo C++ на стандартные Ctrl + C, Ctrl + V, Ctrl + X и Ctrl + Z соответственно. Также созданные комбинации отображаются в виде всплывающего меню по нажатию комбинации Ctrl + «Правая кнопка мыши» и определяется исключение, чтобы заданные комбинации клавиш работали только в указанной программе.
Эмуляция кликов мыши в разных программах по горячим клавишам
Видео показывает возможность Key Manager позиционировать и смещать (с кликом) указатель мыши относительно активного окна и предыдущей позиции с возможностью возвращать указатель в изначальное положение после выполнения действия.
Вставка определенного пользователем форматированного текста (RTF) в MS Word и другие текстовые редакторы
В примере демонстрируется вставка форматированного RTF текста, который содержит текущую дату, в программу MS Word. Также показана замена выделенного текста на этот же текст, но окружённый скобками.
Открытие любого выделенного текста в интернет браузере
В примере демонстрируется применение действия «Открытие веб страницы» и шаблона %km_seltext (выделенный текст).
Эмуляция двойного клика левой кнопки мыши
В примере на клавишу F1 назначается двойной клик левой кнопки мыши и на F2 — двойной клик с задержкой 600 мс.
Запись набираемого текста и последующая его вставка (макрос)
Пример записи нажатий клавиш и последующее их нажатие (воспроизведение) по нажатию комбинации Win + 5.
Вставка текста из буфера обмена в программы, не поддерживающие буфер обмена
На клавишу Ctrl + V назначается действие впечатать текст, которое, с применением шаблона %km_cbtext, впечатывает текстовое содержимое буфера обмена.
Как пользоваться программой
Установка программы
Для установки программы скачайте установочный дистрибутив и запустите на установку.
Работа с программой
После установки запустите программу. На экране появится главное окно:
В верхней части этого окна находится панель для работы с профилями, а также кнопки «Пауза» и «Настройки программы»:
Ниже этой панели находится окно, посредством которого осуществляется добавление новых действий и папок, и управление ими.
Для добавления нового действия необходимо кликнуть на строку «(кликните, чтобы добавить)»:
Появится окно, показанное на рисунке:
Большинство действий имеют имя, которое отображается в поле «Имя действия». По умолчанию оно формируется автоматически на основе данных действия.
Поcле добавления, новое действие появляется в древовидном списке главного окна:
Поскольку добавленное в примере действие-папка имеет назначенную комбинацию клавиш «LCtrl+LShift+1», оно не только позволяет структурировать все имеющиеся действия, но и позволяет представить содержащиеся в нем действия в виде всплывающего меню.
Для демонстрации этого добавим в вышеуказанное действие-папку три действия. Первое будет вставлять текст, второе запускать программу, а третье заменять долгое нажатие клавиши CapsLock на комбинацию клавиш Ctrl+C (в Windows этой комбинации соответствует команда — «копировать в буфер обмена»).
Для этого кликните по строке «(кликните, чтобы добавить)», которая находится внутри папки:
Выберите в появившемся окне действие «Вставка текста». Далее в поле «Вставляемый текст» напишите какой-нибудь текст, например: «Текст написан: «, за которыми следуют текущая дата и время. Чтобы использовать дату и время, необходимо вставить шаблон. Для этого нужно кликнуть кнопку , и в появившемся меню выбрать требуемый вид даты и времени. Вы можете редактировать шаблоны самостоятельно, основываясь на имеющихся примерах. Конечный вид вставляемого сообщения отображается в поле «Предпросмотр»:
При работе с этим действием его имя формируется автоматически. Если Вы хотите определить свое имя для действия — впишите его самостоятельно в поле «Имя действия».
Для добавления действия нажмите «ОК».
Теперь добавьте в папку второе действие. Снова кликните по строке в папке «(кликните, чтобы добавить)» и выберите в списке действие «Запуск программы или файла».
В данном примере будет осуществляется запуск программы MS Word. Для того чтобы указать на программу MS Word, можно кликнуть кнопку «Файл. » и указать исполняемый файл. Это также можно сделать проще, просто перетащив мышью на окно свойств действия ярлык из меню «Пуск» или исполняемый файл из папки требуемой программы, например «C:\Program Files\».
Также назначим запуск этого действия на нажатие комбинации клавиш «Ctrl+2» в поле «На клавишу или комбинацию».
В конечном итоге окно будет выглядеть так:
Для добавления этого действия нажмите «ОК».
Теперь добавьте в папку последнее действие — нажатие комбинации Ctrl+С, а также назначте его на длительное нажатие (нажатие и удерживание) клавиши «CapsLock».
Для этого снова кликните внутри папки на строку «(кликните, чтобы добавить)» и выберите в списке действие «Клавиша или комбинация».
Кликните мышью в поле «Клавиша или комбинация» и нажмите комбинацию клавиш Ctrl+C.
Напишите в поле «Имя действия» — текст «Копировать».
Кликните в поле «На клавишу или комбинацию» и нажмите клавишу CapsLock и поставьте флажок «Долгое нажатие».
По окончанию окно будет выглядеть так:
Для добавления этого действия нажмите «ОК».
Главное окно в конечном виде будет выглядеть так:
Теперь попробуем, как это работает. Убедитесь, что программа не стоит на паузе и нажмите комбинацию клавиш «LCtrl+2» — запустится программа MS Word.
В программе MS Word нажмите комбинацию клавиш «LCtrl+LShift+1» — появится меню:
Выберите в меню первый пункт «Текст написан . » — произойдет вставка текста:
Допишите что-нибудь к вставленному тексту, выделите весь текст и нажмите и удерживайте некоторое время клавишу «Caps Lock» — произойдет внутреннее нажатие комбинации клавиш «Ctrl+C» — копирование текста в буфер обмена. Выберите в меню программы MS Word — «Правка» -> «Вставить» — вставится текст, скопированный в буфер обмена.
Для тренировки Вы можете назначить на обычное нажатие клавиши CapsLock — нажатие комбинации клавиш Ctrl+V (вставить текст), назвав действие «Вставить», тем самым Вы сможете пользоваться буфером обмена, нажимая всего одну клавишу CapsLock. Для копирования — долгое нажатие, для вставки — обычное.
Если Вам требуется изначальная клавиша CapsLock, Вы можете назначить нажатие этой клавиши на другую клавишу или комбинацию, например на «Ctrl+CapsLock» или «Ctrl+Shift+Tab»:
Управление действиями и горячие клавиши
Созданные папки и действия Вы можете легко перемещать и копировать (удерживая клавишу Ctrl при перемещении).
Добавлять, изменять и удалять действия и папки Вы можете с помощью контекстного меню или используя следующие горячие клавиши:
Ctrl+P | Включить/Отключить паузу |
Insert | Вставить действие |
Shift+Insert | Вставить папку/меню |
Enter | Добавить/Изменить папку или действие в зависимости от контекста |
Delete | Удалить папку или действие |
Ctrl+Delete | Удалить все папки и действия (очистить текущий профиль) |
Ctrl+C | Копировать действие или папку |
Ctrl+X | Вырезать действие или папку |
Ctrl+V | Вставить действие или папку |
Ctrl+Shift+C | Копировать весь профиль как папку |
пробной версии программы можно создавать не более 20 действий и 10 папок/меню. Программой допустимо свободно пользоваться в течении 30 дней.
Для снятия всех ограничений, необходимо ее купить. После покупки Вам на электронный адрес будет отправлено сообщение, содержащее данные для регистрации, которые необходимо ввести в программе, через пункт меню «Регистрация».