Как имитировать нажатие клавиши на клавиатуре
В Windows Forms предоставляется несколько возможностей для программной имитации ввода данных с клавиатуры. В этой статье представлены общие сведения об этих возможностях.
Использование SendKeys
Windows Forms предоставляет класс System.Windows.Forms.SendKeys для отправки нажатий клавиш в активное приложение. Существует два метода отправки в приложение нажатий клавиш: SendKeys.Send и SendKeys.SendWait. Разница между двумя методами заключается в том, что при отправке нажатия клавиши SendWait блокирует текущий поток, ожидая ответа, а Send — нет. Дополнительные сведения о методе SendWait см. в разделе Отправка нажатия клавиши в другое приложение.
Если приложение предназначено для международного использования с различными клавиатурами, применение метода SendKeys.Send может иметь непредсказуемые результаты и его следует избегать.
В фоновом режиме SendKeys использует более раннюю реализацию Windows для отправки ввода, что может привести к сбою в современных версиях Windows, где предполагается, что приложение не выполняется с правами администратора. Если старая реализация завершается сбоем, код автоматически пытается выполнить новую реализацию Windows для отправки ввода. Кроме того, когда класс SendKeys использует новую реализацию, метод SendWait больше не блокирует текущий поток при отправке нажатий клавиш в другое приложение.
Если необходимо обеспечить согласованное поведение приложения независимо от операционной системы, можно заставить класс SendKeys использовать новую реализацию, добавив указанный ниже параметр приложения в файл app.config.
Для принудительного использования классом SendKeys только предыдущей реализации задайте значение "JournalHook" .
Отправка нажатия клавиши в то же приложение
Вызовите метод SendKeys.Send или SendKeys.SendWait класса SendKeys . Указанные нажатия клавиш будут получены активным элементом управления приложения.
В следующем примере кода метод Send используется для имитации одновременного нажатия клавиш ALT и ВНИЗ . Эти нажатия клавиш приводят к тому, что элемент управления ComboBox отображает свой раскрывающийся список. В этом примере предполагается наличие Form с Button и ComboBox.
Отправка нажатия клавиши в другое приложение
В следующем примере кода метод Send используется для имитации нажатия клавиш в приложении "Calculator" (Калькулятор) в Windows 10. Сначала он ищет окно приложения с заголовком Calculator , а затем активирует его. После активации окна отправляются нажатия клавиш для вычисления выражения "10 плюс 10".
Использование методов OnEventName
Самый простой способ имитации событий клавиатуры — вызов метода для объекта, который вызывает событие. У большинства событий есть соответствующий метод, который их вызывает, с шаблонным именем, начинающимся с On , за которым следует EventName , например OnKeyPress . Этот вариант возможен только в пределах пользовательских элементов управления или форм, так как эти методы защищены и недоступны вне контекста элемента управления или формы.
Эти защищенные методы можно использовать для имитации событий клавиатуры.
- OnKeyDown
- OnKeyPress
- OnKeyUp
В нашей сегодняшней подборке представлены лучшие коммерческие и бесплатные автокликеры – программы для записи и последующей эмуляции действий клавиатуры, мыши однократно или по расписанию. Они избавят вас от рутинной работы за компьютером и выполнения однотипных действий. Процесс автоматизации проходит безболезненно – нужно только скачать автокликер с правильными характеристиками, которые мы будем рассматривать далее.
Общий рейтинг Общие сведения Функции Дополнительные возможностиОбщие сведения:
Функции:
Дополнительные возможности:
Автоматизация действий созданием скрипта в пользовательском режиме Установка значений и положения указателя мыши по координатамПрограмма Clickermann представляет собой простой автокликер с лаконичным интерфейсом на русском. Он слегка уступает более продуманным аналогам касательно планировки выполнения записанной последовательности действий, но пользуется большой популярностью в среде геймеров, хотя и не позиционируется как программа для игр.
Записывать серии кликов можно в редакторе или фоновом режиме. Максимально оптимизировать ваш скрипт и избавить его от «лишних движений» помогают горячие клавиши. Поговаривают, что удачно созданные в Clickermann сценарий выполняет до 50% типичной офисной работы вместо сотрудника или «фармит» валюту в простых браузерных игрушках с эффективностью рядового пользователя.
Характеристики Clickermann:
- Компактность и портативность, приложение не требует установки;
- Русский язык интерфейса позволяет быстро самостоятельно разобраться с управлением;
- Записанные действия воспроизводятся неограниченное количество раз по требованию;
- Доступен ручной режим создания и автоматическое отслеживание мыши клавиатуры;
- В свободном доступе можно не только скачать кликер, но и найти адаптированные скрипты от сторонних разработчиков.
AutoClickExtreme – полезная утилита от отечественных разработчиков. На стороне приложения понятный интерфейс и прекрасная функциональность. Программа способна записывать скрипты действий как в ручном, так и в автоматическом режиме, у неё масса настроек и различных полезных фишек.
Решение было бы идеальным, но разработчики перестали активно выпускать обновления и не занимаются рекламой, поэтому популярность утилиты не растет. Агитацию за покупку лицензии ради получаса бесплатного разговора с техподдержкой по Скайпу, согласитесь, трудно назвать грамотным маркетинговым ходом.
Основные преимущества AutoClickExtreme:
- Легкий интерфейс пользователя, простой сценарный язык;
- Нажатия клавиш и движения мыши программа улавливает без пропусков;
- Можно как вручную записывать действия, так и отслеживать их автоматически;
- Отлично реализованы хоткеи с возможностью настроить комбинации клавиш;
- К вашим услугам множество регулируемых параметров работы;
- Планировщик позволяет запускать скрипт и повторять его в любое время;
- Стоимость утилиты более чем демократична.
Этот автоматический кликер призван упростить работу за компьютером. Он позиционируется как средство экономии вашего времени, которое можно теперь потратить на более полезные дела.
UoPilot, в отличие от описанных выше утилит, создан, скорее для профессионалов, нежели для рядовых пользователей или геймеров. Здесь нет возможности полноценно записывать действия мыши, клавиатуры и т.д. Создатели утилиты предлагают вручную прописывать места кликов, их количество для правой и левой кнопкой мыши, положение указателя. Интервал между кликами регулируется от миллисекунд до часов по вашему требованию, переменные циклы также поддерживаются.
В целом, утилита отлично справляется с поставленной задачей, но она предназначена исключительно для специалистов, понимающих принцип работы макросов и умеющих писать скрипты вручную. Простой пользователь вряд ли разберется.
Особенности UoPilot:
- Функции записи действий с экрана и воспроизведение записи не поддерживаются;
- Чтобы пользоваться утилитой, необходимо знать принципы написания скриптов;
- Как и другие кликеры для игры, тонко настраивается по параметрам пользователя;
- В базе приложения отсутствует планировщик для автоповтора макроса;
- Последняя версия программы вышла более года назад, обновления отсутствуют.
Спецификации Automatic Mouse and Keyboard:
- Способна значительно упростить жизнь геймерам – с её помощью часто пишут ботов для онлайн-игр;
- Умеет как запоминать ваши действия мышкой, клавиатурой, так и воспроизводить написанные в редакторе;
- Предоставляет завидные возможности по созданию и настройке сценария и его выводу на дисплей;
- В базе содержит семплы, а также функцию «умного захвата» кликов мышкой;
- Распространяется на платной основе, отсутствует локализация и версия для Android.
Ghost Mouse - небольшая утилита с «однокнопочным» управлением. Она даже не поддерживает захват клавиатуры, а просто отслеживает действия мышью в разных местах экрана после активации записи сценария. Когда он готов, вам остается нажать на кнопку Play и наблюдать, как программа будет автоматически кликать мышкой через определенный промежуток времени. Все просто и понятно. Для «фарма» валюты в какой-нибудь браузерной «ферме» такое приложение может и подойти, но для более серьезных задач рекомендуем другие автокликеры скачать.
Особенности Ghost Mouse:
- Очень простой принцип работы программы, примитивный интерфейс;
- Запись скрипта только в автоматическом режиме отслеживания действий;
- Доступно управление горячими клавишами, минимум настроек, отличная автоматизация;
- Поддерживается любая компьютерная игра без ИИ;
- В числе последних, поддерживается операционная система Windows 7 и 8;
- Разработчик предлагает Ghost Mouse как урезанную версию платного кликера ReMouse с более обширными возможностями.
Установить автокликер GS Auto Clicker вам предложат почти все топовые сайты с обзорами ПО. Программа популярна и разрекламирована, несмотря на безвозмездное распространение полной версии. Подобно Ghost Mouse, GS Auto Clicker не работает с клавиатурой, но имеет интерфейс ручного добавления сценария. Вы указываете, как нажимать кнопку (двойной или одинарный клик), выставляете позицию указателя на экране и необходимое определенное количество действий. После скрипт должен выполняться в точности, хотя ошибки иногда возникают. Лучше записывайте действия в режиме захвата.
Преимущества GS Auto Clicker:
- Программа проста в использовании, распространяется полностью бесплатно;
- «Горячие клавиши» помогают начать запись и закончить её без лишних действий;
- Автокликер работает со всеми современными платформами, часто обновляется;
- Сфера применения неограничена – утилита избавит вас от выполнения однообразных действий в играх, приложениях и даже поможет облегчить примитивный заработок в интернете.
Free Mouse Auto Clicker в бесплатной версии не представляет интереса среди своего рода программ. Уж чересчур урезали разработчики возможности продукта, до такой степени, что использовать автокликер почти невозможно. Чтобы имитировать клик, вам придется долго выставлять значения позиции в интерфейсе. Для аматоров это неудобно, а профессионалы обычно выбирают другие подобные программы с нормальной реализацией, где есть удобный редактор скрипта с подсветкой синтаксиса.
Характеристики Free Mouse Auto Clicker:
- Малый «вес» и низкие системные требования;
- Сложность в использовании – придется задавать положение курсору мыши только вручную;
- Доступна установка интервалов повторения клика;
- Платная версия предоставляет гораздо более полезные функции с лучшей реализацией.
Как видите, виртуальная компьютерная мышь и клавиатура действительно попогают. Можно задать алгоритм, чтобы фармить валюту в простенькой браузерной игре, автоматизировать серфинг, сделать бот для социалок или автоматически вводить какие-либо данные в компьютер без рутинной ручной работы. Эмуляция действий через автокликер - отличный вариант и прежде, чем определить, какая компьютерная программа займет первое место в нашем рейтинге, еще раз кратко охарактеризуем каждую из них.
Clickermann – простой и удобный кликер с дружественным интерфейсом, ручным и автоматическим режимом работы, хорошими показателями надежности. Он бесплатный, но довольно качественный. Единственный недостаток – плохо развит планировщик заданий.
AutoClickExtreme по многим параметрам обходит вышеупомянутого «коллегу» и точно занял бы первую строчку, но Clickermann выигрывает благодаря отсутствию платы за лицензию. В общем, утилита нам очень понравилось, отдать за неё 1000 рублей, если появится необходимость, совсем не жалко.
Automatic Mouse and Keyboard порадует своими возможностями, но цена программы при отсутствии русского явно кусается. Даже если не ставить её, а просто анализировать изображение с менюшкой, становится понятно, что здесь есть все, что необходимо. Утилиту облюбовали геймеры. С её помощью пишут очень качественных фарм-ботов.
UoPilot замыкает список достойных русскоязычных утилит-автокликеров. Она предназначена для профессионалов. Простым юзерам придется попотеть, дабы записать качественный макрос, но попробовать можно. Плату ведь никто не требует. Англоязычный Free Mouse Auto Clicker обладает схожими возможностями, но, как мы уже говорили, в бесплатной редакции они сильно урезаны.
Ghost Mouse и GS Auto Clicker – одного поля ягоды. Это простые и удобные минималистичные приложения с продуманным управлением. Пусть они не поддерживают автоматизированный набор текста и «хромают» в некоторых аспектах (нет планировщика, перевода меню), но все же популярны. Обратите внимание на них, если не желаете долго разбираться с самостоятельным написанием сценариев.
SendKeys – имитация нажатия клавиш – теоретические основы
Метод SendKeys, который позволяет имитировать нажатие клавиш и их комбинаций. Метод SendKeys объекта WScript.Shell является по своей природе слепым, так как он не позволяет указать то приложение, которому назначен ввод с клавиатуры, то есть, если мы сделаем попытку имитировать ввод фразы "привет мир", то она будет обрабатываться лишь тому приложениею, которое в данный момент являются активным. Если активным будет текстовый редактор – то в нем отобразится заданный текст, если антивирусная программа – то, скорее всего, никакой активности не произойдет.
Что бы использовать функцию Wscript SendKeys, нужно объявить переменную, которая будет хранить ссылку на объект WScript.Shell, а уже через эту переменную можно будет вызвать SendKeys.
Общая логика работы:
SendKeys (строка) – Видим, что мы в качестве аргумента должны передать строковое выражение, которое будет хранить имя клавиши или сочетание.
Что бы ввести просто символ или набор символов, мы всего-навсего прописываем их как строку, например: SendKeys("привет мир"). Для ввода специальных клавиш (например, Enter, стрелки, функциональные клавиши и так далее), их название нужно заключить в фигурные скобки <>.
Ниже приведен список функциональных клавиш и их обозначение:
- BACKSPACE -, или
- BREAK -
- CAPS LOCK -
- DEL или DELETE - или
- СТРЕЛКА ВНИЗ -
- END -
- ENTER -или
Если нужно указать сочетание специальных клавиш, то следует использовать следующие коды:
Также стоит помнить, что для ввода символов +, ^, %,
, (, ) , , [, ] их также нужно заключить в фигурные скобки.
Если есть необходимость имитации нажатия клавиши несколько раз подряд, то после нее через пробел прописывается количество, например: – 20 раз подряд нажата клавиша n. Стоит учитывать один немаловажный момент, имитация нажатия клавиши не действует для приложений , которые не были разработаны специально для запуска в Microsoft Windows, например, командная строка .
SendKeys – имитация нажатия клавиш – приступаем к программированию
Хорошо, с теорией разобрались, теперь давайте приступим к программированию. Давайте для начала рассмотрим следующий пример программного кода на языке vbscript:
А вот аналогичный пример, но уже на языке jscript:
А вот еще один пример на vbscript :
Ну и пример на языке jscript :
И так, давайте все подытожим… В этой статье мы рассмотрели функцию SendKeys класса WScript Shell, которая позволяет создавать имитацию нажатия клавиш, мы написали четыре программных кода – два на языке vbscript и два на языке jscript. Помним, что программный код работает под управлением сервера сценариев Windows Script Host.
Спасибо за внимание. Автор блога Владимир Баталий
Сегодня день рождения у Гвидо ван Россума, создателя Python. Поздравляем! Самое время поговорить о его детище и затронуть животрепещущую тему: как в Питоне имитировать нажатия клавиш при создании ботов. Суть бота — автоматическое выполнение действий, на которые не хочет тратить время человек. У программистов Python есть инструменты, позволяющие имитировать события клавиатуры и реагировать на них. Подборку таких инструментов вы и найдете ниже.
Зачем и кому это нужно
Поводы симулировать нажатие клавиш:
автоматизация — создание ботов для сайтов, приложений и игр. Пример: бот для автоматического заполнения форм или кормления/лечения игровых персонажей;
тестирование десктопных приложений — перебор возможных действий пользователя и реакций программы;
доступность — адаптация интерфейса для людей с ограниченными возможностями здоровья, в том числе за счёт эмуляции мыши (ведь без зрения ею не воспользуешься);
оптимизация — переназначение стандартных клавиш и/или замена недостающих кнопок физической клавиатуры.
Инструменты питониста для разных платформ
Для симуляции событий клавиатуры и мыши есть кроссплатформенный модуль PyUserInput , который работает поверх библиотек и фрейморков:
Quartz и AppKit — на Mac,
pywin32, pyHook — в Windows.
Для Windows также стоит отметить:
pyautoit — это Python API к средству автоматизации AutoIt;
pywinauto — набор модулей, который автоматизирует взаимодействие с Microsoft Windows GUI. Библиотека написана на чистом Python — простейшие её функции по обработке событий мыши и клавиатуры работают и в Linux. Но более сложные возможности для работы с текстом заточены именно под Windows и доступны только там.
Актуальные версии этих инструментов поддерживают Python 3, более ранние — Python 2.
Как это работает: примеры
В директории examples каталога pywinauto на GitHub собраны два десятка наглядных примеров по использованию библиотеки. С их помощью вы можете прямо сейчас создавать ботов, которые умеют устанавливать/удалять программы, скачивать web-страницы, перетаскивать файлы между окнами, пакетно обрабатывать изображения в MS Paint и решать другие задачи.
Новички оценят читаемость кода:
Хорошо? Представьте, что вам нужно перенастроить приложение из дефолтного состояния на N-ном количестве компьютеров — выбрать нужные пункты меню, заполнить нужные поля. Или вы тестируете свою программу вдоль и поперёк, чтобы выявить сбои при обращении к GUI. Скрипт, который вам потребуется, будет длиннее, чем в примере выше, но по сути усложнится незначительно.
Добавьте сюда возможность работать с любыми приложениями на Win32 GUI и виджетами под интерфейс MS UI Automation.
Устанавливается pywinauto как обычный пакет — через pip install — и автоматически ставит еще несколько полезных компонентов: библиотеку pyWin32 , COM-клиент и серверный фрейморк comtypes , библиотеку six , которая обеспечивает совместимость Python 2 (начиная с 2.6) и 3. Всё это пригодится начинающему разработчику не только для создания ботов, но и в разработке собственных программных продуктов.
Читайте также: