Аппаратный эмулятор клавиатуры и мыши с интерфейсом USB
Для чего нужен аппаратный эмулятор клавиатуры и мышки? Многим часто приходится выполнять рутинную работу и возникает мысль как-то автоматизировать этот процесс чтобы компьютер сам кликал в окнах и нажимал кнопки клавиатуры в то время как вы не спеша пьете кофе или занимаетесь другими делами. Не всегда для этой цели подходит программная эмуляция и в таких случаях необходим аппаратный эмулятор.
Что же из себя представляет аппаратный эмулятор клавиатуры и мыши? Обычно это небольшое устройство подключаемое к компьютеру через USB порт и которое он определяет как клавиатуру и мышь. Кроме того предусмотрен канал передачи управляющих команд (обычно через тот же USB порт) по которому устройству приходят команды нажать или отпустить кнопку клавиатуры или переместить мышь и покликать ее кнопками. Таким устройством могут быть различные микроконтроллеры имеющие в своем составе модуль связи по USB и прошитые специальной программой эмулятора клавиатуры и мыши.
Для этой цели хорошо подходит отладочная плата Blue Pill.

На ней есть все необходимое — микроконтроллер STM32F103C8T6 с интерфейсом USB который выведен на разъем microUSB и вся необходимая обвязка для микроконтроллера. Нужно только прошить микроконтроллер программой эмулятора. Также для этой цели подойдет другие отладочные платы и устройства с микроконтроллером STM32F103C8T6 например отладчик ST-Link в форм-факторе флешки. Использование готовых компонентов позволяет сделать этот эмулятор почти каждому.
Usb keyboard and mouse simulator что это







If you are installing Windows 7 with an optical disc drive and PS/2 keyboard or mouse, you won’t have any problems installing Windows 7. Meanwhile, this is a completely unrelated picture of a cat.




If you are installing Windows 7 with an optical disc drive and USB keyboard or mouse, please enable the «PS/2 Simulator» option in UEFI SETUP UTILITY > Advanced > USB Configuration.

By doing so allows your onboard USB to function as a PS/2 port, then you can install Windows 7. Please set PS/2 Simulator back to disabled after the installation.


If you don’t have an optical disc drive and wish to install Windows 7 with a USB drive, please find another computer and follow the instructions below to use «Win 7 USB Patcher» (Located in the support CD or ASRock’s website).
Win 7 USB Patcher:
Intel 100 Series / Intel 200, Z370 Series / AMD AM4 Series(Matisse, Picasso & Raven Ridge CPU supports Microsoft ® Windows ® 10 64-bit only.) / Intel Apollo Lake Series SoC / Intel Braswell Series SoC Intel H310C Series
Step 1
Insert the Windows 7 installation disk or USB drive to your system.
Step 2
Extract the tool (Win 7 USB Patcher) and launch it.
Step 3
Select how you want to install Windows 7 later.

Step 4
Locate your «Win7 Source Folder».

Step 5
Select the USB storage, compact disk or destination folder for the new Windows 7 installation file. 
Step 6
Click “Start” to begin. 
Эмулятор клавиатуры и мыши без встроенных keylogger-ов
Здравствуйте, с недавних пор пишу программу для эмуляции выполнения последовательности нажатий и движения мыши, то есть например при удержаний клавиши A кликать мышью, двигать курсор, зажимать Shift и т.п. и подумал что вдруг кому то из читателей такая программа может пригодится.

По функционалу все довольно просто: выбираете клавишу и тип действия на которое срабатывает событие(нажатие, удержание, отпускание) далее само событие и так далее, в видео ниже есть пояснение (и НЕ забываем поставить галочку активно), думаю в нюансах вы сможете разобраться сами. В комментариях вы можете посоветовать какие функции вы возможно хотели бы видеть в подобной программе и если программа вам приглянёться то в следующем посте я опишу все нововведения и инструкцию.
Если нет желания собирать проект то в папке bin\Debug просто скачайте: SendKeyboard.exe и Newtonsoft.Json.dll.
Требование к программе:
.Net Framework 4.7.2( https://support.microsoft.com/ru-ru/help/4054530/microsoft-n. ) он уже является установленным на многих компах но все же не на всех.
Если даже после установки .Net Framework 4.7.2 возникает ошибка и её не получается проигнорировать, то возможно вы запускает программу папке где нет Newtonsoft.Json.dll(Он есть в проекте)
Уже давно есть аппаратный эмулятор клавиатуры и мыши — usb2kbd.ru , умеет работать с большинством кликеров.
А можно эмулировать USB-HID serial устройство?
большой недостаток, та как требуется:
***Требование к программе:
.Net Framework 4.7.2(
а они слишком много весят, и тормознутые, устанавливать не буду
чем это лучше, например, Automatic Mouse and Keyboard .
в неё миллион встроенного + макросы + скрипты.
Ведь это полюбому не умеет записывать макрос — всё 1-в-1 как ты кликаешь мышкой+клавой — позиции, паузы, перемещения.

Всегда перед сном всплывает какой-то каверзный вопрос


Реверс-инжиниринг нестандартной ps/2 клавиатуры
Дополнительные фото и видео в источнике материала.

Терминал VT520 c клавиатурой LK46W-A2
После моего предыдущего поста с подключением советской клавиатуры к современному ПК, я как-то заразился оригинальными клавиатурами от DEC, и уж больно хотелось их испытать в деле. И на удивление, на досках удалось найти даже клавиатуру LK201, однако для меня показалась не очень уж интересной. А вот клавиатуру Wyse 85 со свичами Cherry MX нашёл намного более стильной и крутой. Однако смущал вопрос, как же её использовать с современным железом, удобно ли будет такое расположение клавиш?
И тут мне на глаза попадается объявление с ещё одной терминальной клавиатурой LK46W-A2 которую можно подключить к обычному компьютеру по стандартному интерфейсу PS/2, но с количеством клавиш и расположением, как у LK201 с небольшими дополнениями. После того как ознакомился с информацией, принял волевое решение купить кота в мешке и попробовать эту клавиатуру с обычным ПК, а также понять, что же делают все остальные «нестандартные клавиши». Этакий реверс-инжиниринг клавиатуры.
❯ Распаковка и отмывка
Итак, спустя пару недель мне пришла посылка с этой удивительной клавиатурой. Терминал найти невозможно, а вот клавиатуру – пожалуйста.

Клавиатура LK46W-A2 собственной персоной
Удивительно хорошая сохранность, белый пластик, что редкость для таких старых устройств. Немного потёртая из-за неправильного хранения, и отсутствует одна выдвижная ножка. Наклейка сзади гласит, что это за клавиатура.

Наклейка модели
С большим трудом удалось установить, что использовалась с моделями терминалов DEC VT520 (см КДПВ). Терминал не найти, а клаву – вот, пожалуйста.

Предварительное включение показало, что клавиатура рабочая, но требует водных процедур. Поэтому принял решение её разобрать. Само устройство разбирается не так просто: требуется отогнуть большое количество пластиковых защёлок, благо на корпусе изделия есть специальные технологические отверстия для отвёртки. После нескольких пассов две половинки клавиатуры разделились.

Внутри стандартная плёночная клавиатура, с резиновыми «давилками».

Что приятно удивило, что все длинные клавиши имеют металлические поддерживающие клипсы от перекоса. И все места трения смазаны густой смазкой.

Металлические клипсы
Плёнка клавиатуры прижимается к контроллеру специальной резинкой, вмонтированною в корпус клавиатуры.

Резинка для прижима контактов
Контроллер – обычная капля, 4 стандартных контакта для ps/2: Data, Clock, +5, GND.


После разборки, корпус клавиатуры ждала процедура купания. Не стал фотографировать, как я мою клавиатуру в ванной с мылом. Грязи вышло достаточно много.
Когда омовение прошло, прежде чем окончательно закрыть клавиатуру в корпусе, сделал тестирование работоспособности всех клавиш на резинке.

Тестирование перед закрытием
Не забываю смазать все движущие части, и окончательно собираю клавиатуру.
❯ Поиск потерянных клавиш

Если взглянуть на фотографию, и сравнить две клавиатуры, то можно заметить, что, во-первых, клавиш намного больше, а во-вторых, непонятно что эти клавиши делают. Сравните, для примера, расположение клавиш вокруг кнопки «Z».
В чём прикол?
На самом деле вас немного разыгрываю, нижняя клавиатура имеет сербскую латинскую раскладку, у которой «Y» и «Z» поменяны местами:

Если тут есть сербы, объясните мне, что за спецсимволы нанесены на клавиши и где они используются?
Главный вопрос, который меня волнует: как понять какая клавиша за что отвечает?
Изначально пытался найти хоть какую-то внятную документацию по теме, но в результате пришлось действовать методом научного тыка. Для этого пошёл на сайт en.key-test.ru и начал нажимать все клавиши, перебирая их последовательно. В результате получилась такая картинка:

Вы видите нажатую левую кнопку мыши? Это тоже реакция на нажатие одной кнопки, и, как можно заметить, практически все клавиши присутствуют на этой клавиатуре. PrtScr у меня под линуксом просто вызывало создание скриншота и не перехватывалось этим сайтом, то есть и она тоже работает.
Для своего удобства на клавиатуре расположил бумажки, с подписями, где и чего находится. Вопросами обозначены те клавиши, на которые реакции никакой не было.

На самом деле Right Ctrl
Итак, что же тут интересного:
Клавиши F13, F14, Help, Do, F17, левый Compose Character – не определены. Назначение и функциональность пока неясны.
Клавиша ESC расположена, где находится тильда «
» на обычной клавиатуре, а тильда рядом с клавишей «Z».
Функциональные клавиши типа Home, End, PageUp, PageDown, Isert и т.д. находятся в других местах, но достаточно логично. Не стал их подписывать, потому что и так можно догадаться (например, Re-move = Del, Prev = PageUp). Часть функциональных клавиш расположена на клавишах F18-F20.
Цифровой блок достаточно стандартен, кроме одной клавиши – это клавиша «минуса», она даёт странный код: «±». Да, символ «плюс-минус», который можно набрать прямо с клавиатуры, с одной клавиши (Linux Mint).
❯ Пробуем получить скан-код клавиши
Согласно стандарту, клавиатура при нажатии передаёт скан-код нажатия клавиши и скан-код «отжатия» клавиши.


Примеры скан-кодов стандартной клавиатуры
Как можно заметить, что добавление новых клавиш клавиатуры осуществляется с помощью код расширения 0xE0, и, можно предположить, что необычные клавиши этого устройства тоже будут идти через дополнительный код.
Для начала попробовал получить скан-коды неизвестных клавиш через утилиту showkey. Для этого нужно полноправно завладеть устройством ввода, без иксов. Поэтому переключаюсь на консоль комбинацией клавиш ctrl-alt-F1 и ввожу:
showkey -scancodes
И начинаю радостно жать на неизвестные клавиши, но удивительно: ничего не происходит! Те клавиши, которые мне удалось перехватить, дают корректный скан-код, а вот «тайные» — «молчат». То есть либо эти клавиши вообще не работают, либо фильтруются на уровне драйвера ядра.
Начал думаю, что же мне проще: подключить логический анализатор, либо найти другой способ получения скан-кодов нажатых клавиш? И тут я вспомнил, что у меня есть тестовая машина с DOS.
❯ Получаю скан-коды под ДОС
Синей пеленой экран заполнил чистый DOS
Мышь…
Стала вдруг квадратной, потеряла форму мышь…
Я разбил окно,
девяностопятое мастдайное окно,
И поставил DOS, и тогда увидел:
Это счастье, — вот оно.
Итак, для того чтобы получать скан-коды клавиш, нужно иметь какую-то программу, которая бы читала их из BIOS. Контроллер клавиатуры позволяет читать коды набранных клавиш из порта 0x60, осталось только это всё аккуратно написать. Для того чтобы понять, о чём я говорю, вы можете посмотреть пример на ассемблере.
Поскольку я человек ленивый, знаю, что всё давно придумано за нас, решил погуглить. У меня как раз в системе есть qbasic, значит, можно сходу найти пример приложения для него. И беглым гуглением, после нескольких тестов нашёл приложение, которое наиболее полно меня устраивает.
Не буду описывать весь код, главное, что оно читает скан-коды из порта, и в удобоваримом для меня виде выводит на экран. Вот, пример чтения кода из порта.

После того как протестировал в Dosbox, пришла пора проверить на реальном железе.

Тестовая машина с ДОС
Для своего удобства делал фотографии с именованием «неизвестной» клавиши и её кодом. Так получилось, что после запуска приложения, из буфера читается «мусорный код». Его я прикрывал бумажкой, важно, что ниже. Вот, например, нажатие левой клавиши «Compose Character».

Как я и предполагал, все они идут через код расширения 0xE0. То есть, код клавиши получается: 0xE00F. Вторая пара байт 0xE08F – это код отпускания этой клавиши (на это действие тоже есть отдельный код).
Ну и по аналогии, остальные клавиши.
Из забавного, что в ДОС даже есть какая-то скромная попытка обрабатывать нажатия на клавиши, например, реагирует на них, запуская копирование (хотя это ошибка).

Ложное срабатывание
В общем, ДОС хоть и стар, но оказывается местами даже очень полезен.
❯ А что там с документацией?
Явно найти документацию на клавиатуру модели LK46W-A2 мне не удалось. Но, когда я искал документацию на стандарт ps/2, то наткнулся на сайт Keyboard scancodes, в котором есть раздел, посвящённый клавиатурам LK411 и LK450. Нашёл это уже после прохождения всех моих мытарств, но они лишь подтвердили результаты моих экспериментов:

То есть, фактически мне это удалось подтвердить эмпирическим путём, хотя у меня немного другая модель клавиатуры.
❯ Выводы

Сравнение Wise 85 и LK46W-A2
Наверное, буду лукавить, если скажу, что текст набран именно на этой клавиатуре. Клавиши мне показались очень тугими. Но попробовал работать с ней, и достаточно быстро привык к такому вот нестандартному расположению клавиш, даже нахожу их весьма удобным и комфортным. Особенно стрелочная часть. Даже не испытывал проблем с набором текста и запуском программ. Поначалу ищешь ESC не там, где он есть. А вот расположение тильды я нахожу очень удобным.
Единственный вопрос, который остался за кадром: почему Linux фильтровал нажатия этих клавиш? Возможно ли поправить dts-файл так, чтобы ядро корректно отрабатывала нажатия этих клавиш? Добавить ими дополнительную, необходимую для комфортной работы функциональность? В общем, вопросов пока больше, чем ответов. Если опытные драйверисты есть, буду рад обсудить этот момент.
Из личного опыта такое расположение нахожу весьма удобным, и резюмируя, могу сказать что клоны клавиатур lk201, в том числе советский клон может быть использован для набора текста. Разве что потребуется программирование некоторых клавиш под свои нужды, и придётся отказаться от правого Alt и Ctrl.
Полезные ссылки:
P.S. Если вам интересно моё творчество, вы можете следить за мной ещё в телеграмме.
Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Новогодняя ёлка из 34 клавиатур, 6 мышек и кулера с RGB-подсветкой.

Святой грааль слепой печати. Постепенный переход на слепую печать без усилий(15 минут подготовки)

1) Фотаем, распечатываем и приклеиваем на монитор свою клаву. Желательно в увеличенном виде.
2) Читаем вступление к любому тренажеру 10 пальцевой печати(рекомендую VerseQ) и правильно ставим руки(фыва-олдж и прочее).
3) Работаем как обычно и скоро перестанете смотреть на клаву.
Проблема слепой печати в том, что слишком большая «пропасть» между смотреть на клаву и не смотреть на неё. Проще посмотреть и напечатать, чем мучиться.
А в этом способе проще посмотреть на лист, чем на клаву. Особенно если у вас она разделенная, на листе можно буквы поближе сделать, вырезав середину клавы. И особенно если, как у меня, зрение не очень, распечатать можно на двух листах А4(для слепошарых есть большие мониторы, а клавы-то под пальцы рассчитаны). Немного освоившись становится проще не смотреть вообще, чем смотреть на лист. Соответственно, лень на каждом этапе — союзник слепой печати и поэтому успех неизбежен.
Сломалась у меня недавно клава. А на полке ждала своего часа Kinesis Advantage. Сразу после покупки я понял, что печатать не вслепую на ней проблематично, а времени всё не было. И вот я решился освоить данный навык.
Начал с самого популярного тренажера — соло на клавиатуре. У меня была 8 версия на компе — прошел 30 уроков из 100 и заколебался совсем. Одно и тоже тысячи раз. А у мозга ведь есть порог — если он делает одно и тоже слишком долго, то помимо банального надоедания (которое мы, взрослые люди, умеем подавлять), подсознание начинает думать, что печатаем неправильно. Количество ошибок начинает расти и мышечная память ослабевает. Типа мозговая перетренированность. Автор соло пытается смазать этот эффект, отвлекая мозг встроенными анекдотами, историями и психотренингами(весьма качественными кстати), но для меня это не сработало. Подумал, что дело в неактуальной версии тренажера. Пересел на онлайн соло по подписке. Прошел 40 уроков из 100. Абсолютно всё тоже самое, только графика современная. Заколебался вконец, думал обычную клаву покупать.
Посмотрел, что в мире по нейро-интерфейсам — пока что только мечты и исследования, слепая печать будет актуальна до пенсии.
Посмотрел сравнения других тренажеров. На хабре есть статья с рекомендацией typingclub. Попробовал — принцип тоже, что и у соло, но уроков не 100, а 500! Фтопку. Еще рекомендуют тренажер стамина. Попробовал — здесь получше, слова разные, мозг работает интенсивней. Уроков штук 10 всего. Но решил — огласите весь список пожалуйста.
В итоге, наконец, нашел тренажер, цель которого не учить, а научить — VerseQ. Отдельных уроков вообще нет. Бесячих наказаний за ошибки, как в соло, тоже. Программа предлагает печатать не слова, а буквенные аккорды, часто встречающиеся в языке. Если видит ошибки, увеличивает вероятность этих букв в тексте. Получается индивидуальное обучение. Можно реально за час начать более-менее вслепую печатать. Вообще то это не чудо, это норм. Даже моментальное обучение не нарушает законов физики. Я например по системе Дмитрия Петрова освоил и довел до автоматизма(с помощью приложения) времена английского за 16 часов. До этого 10 лет в школе и универе даром преподаватели время со мною тратили.
У VerseQ только одна проблема не решена(как и в любых других тренажерах) — нельзя менять изображение клавы. А мне плохо подходит стандарт, у меня рядов больше и они короче, буквы х ъ я ё вообще не там, где надо. Думаю, сфотаю клаву и выведу поверх всех окон. Но в других приложениях она будет мешать ведь. Тогда напечатаю и наклею под монитор. Сделал на А4. Мелко получилось. Обрезал лишнее и растянул на 2 А4. Теперь вопрос только в том, нужен ли вообще тренажер? Напечатал этот текст без подсматриваний на клаву. Но вообще, пару часиков в VerseQ я бы всё таки рекомендовал для начала — там вроде неделя бесплатно, можно все языки успеть освоить. Только включите в фоне какую-нибудь интересную аудиокнигу, иначе сознанию быстро надоест. А слепая печать это вообще не его дело.
За тэги не обессудьте, ткнул все, где может пригодиться из тех, что пикабу предложил. Ну и за кликбэйт. Очень уж доволен, как работает эта поделка, хочу чтоб люди тоже попробовали.
How to Use Keyboard And Mouse With CEMU

In this guide, you will find how to use the Keyboard and Mouse with Cemu using the easiest and most quick ways. First, try to map the Keyboard settings to check if Cemu detects the keyboard while playing the game. Then you have to download and install ViGEmBus Setup and mouse2Joystick Setup. After that, configure Keyboard and Mouse in Cemu, then adjust the Mouse2Joystick settings, and map Keyboard Inputs.
Trying To Map Keyboard Settings
In this section, we will take you through the steps to try to map Keyboard settings and check if Cemu detects the keyboard while playing the game.
- First, you need to launch the Cemu application on your computer.
- Click the options tab from the quick access toolbar and select the input settings from the listings.
- After that, map all the keys based on your choice and play the game.
At this place, the Cemu will not recognize your keyboard.
ViGEmBus Setup
This section describes how to download and install ViGEmBus setup 1.20.432 to use the Keyboard and Mouse with CEMU while playing the game.
- Open up the web browser on your computer and download the ViGEmBus Setup 1.20.432.
- Once you reach the web page, you have to download it from the Assets section.
- Once the file is downloaded, install it on your PC.
- Now go to your start menu, write device manager in the search box, and open it up.
- Once the device manager is opened, click the view tab from the quick access toolbar and select the Devices by Connection option.
- Upon reaching the window, scroll down to Nefarius Virtual Gamepad Emulation Bus from the listings.
- If it is detected then the ViGEmBus Setup is installed correctly.
Mouse2Joystick Setup
This section explains how to download and install the Mouse2Joystick setup to use the Keyboard and Mouse with CEMU while playing the game.
- Now you need to download and install Mouse2Joystick Setup from the official web page.
- Once the zip file is downloaded, you need to extract it.
- Then right-click the Mouse2Joystick application to run it with administrative privileges.
Configure Keyboard and Mouse in Cemu
This section describes how to configure the Keyboard and Mouse in Cemu to use the Keyboard and Mouse with CEMU while playing the game.
- Now you have to launch the Cemu application on your computer.
- Once the window is opened, click the options tab from the quick access toolbar and select Input settings from the listings.
- Upon reaching the window, you need to select the Wii U Pro Controller option from the emulator controller section.
- However, you need to click the plus (+) from the controller section and set the API to XInput, and controller 1 is selected as the controller.
It will automatically remap all the controller’s settings. - Then click the Add button from the menu.
- Again you have to click the plus (+) from the controller section and set the API and Controller to the keyboard.
- Then click the Add button from the menu.
- Before configuring the keys you need to ensure that the keyboard is selected as the controller.
Then you can remap the key based on your choice.
- If you have changed the keys then you need to apply the settings by changing the controller to Xinput and checking the same remapping of the keys.
- After that, you have to play the game and check that the keyboard is working properly as a controller.
Mouse2Joystick Settings
This section explains how to configure the Mouse2Joystick settings to use the Keyboard and Mouse with CEMU while playing the game.
- To change the mouse settings you have to adjust the X and Y resistances.
- You will get better movement by lowering the resistance.
- You can play the game with the lock in the center, lock cursor, and hide cursor options.
- However, lock-in center settings are the most essentially required while playing the game as they assist to move in one direction by turning the camera.
Mapping Keyboard Inputs
This section describes how to configure the mapping Keyboard inputs to use the Keyboard and Mouse with CEMU while playing the game.