Могу ли я напрямую общаться через USB с такими входами, как клавиатура и мышь?

483
Punkroku

Установить кнопку мыши или клавиатуры для имитации щелчка левой кнопкой мыши и удержания или быстрого повторного щелчка левой кнопкой мыши в Windows?

У меня была идея tripleClicker во сне, и моя реализация больше похожа на турбо-кнопку для мышей. Теперь я могу использовать autokey или autohotkey. Но я хочу знать, как программное обеспечение делает это.

Я на Linux, вы можете помочь мне отправить левой кнопкой мыши мыши, я могу отправить его непосредственно в / dev / input / event3

Есть ли способ подражать этому сигналу или это многословно? Фактический сигнал hex на USB?

Событие: время 1540772345.223443, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 90001 Событие: время 1540772345.223443, тип 1 (EV_KEY), код 272 (BTN_LEFT), значение 0 Событие: время 1540772345.223443, ------- ------- SYN_REPORT ------------

PS как мне получить время На моей машине написано: реальный пользователь 0m0.000s 0m0.000s sys 0m0.000s

Это больше время таймера -a увеличивает время -p сбрасывает свою команду секундомера.

Целью этого является обходной путь в LMMS / GIMP, поэтому мне не нужно пытаться сделать инструмент кисти вместо этого. Он будет нажимать несколько раз, чтобы имитировать эффект кисти или эффект рисования.

0
https://stackoverflow.com/questions/20595716/control-mouse-by-writing-to-dev-input-mice ivanivan 5 лет назад 0
@ivanivan: у вашей ссылки есть ответы, которые смешивают различные уровни системы (старый протокол мыши на `/ dev / input / mice`, протокол X), и я не вижу ни одного ответа, отвечающего на` / dev / event` dirkt 5 лет назад 0
xdotool - безусловно, самый удобный способ эмулировать ввод с клавиатуры и мыши, но он использует функции xlib вместо прямого взаимодействия с узлами / dev. Layne Bernardo 5 лет назад 0
Я чувствую, что может быть проще просто отредактировать исходный код для LMMS или GIMP. Я хочу как правую кнопку, но для левой кнопки. Я просто хочу щелкнуть и перетащить вместо щелчка щелчок щелчок щелчок щелчок щелчок быстрее, чем я могу напечатать это. Punkroku 5 лет назад 0
Редактирование исходного кода для LMMS или GIMP, вероятно, не проще, чем использование xdotool и создание небольшого скрипта. Кстати, вы можете получить мышь, которая имеет функцию быстрого автоматического щелчка: https://www.amazon.com/SPEEDLINK-Symmetrical-Optical-Gaming-Illumination/dp/B00EOTR10K Layne Bernardo 5 лет назад 0

1 ответ на вопрос

1
dirkt

Чтобы отсортировать различные уровни ядра: USB-слой идентифицирует вашу мышь как устройство HID (устройство интерфейса человека), а с помощью дескриптора HID автоматически преобразует события USB во входные события (что вы видите на /dev/input/eventX). Затем эти входные события читаются драйвером X evdevи преобразуются в события X (или, если вы используете Wayland, через интерфейс выполняется нечто подобное libinput), которое затем интерпретируется GIMP и т. Д.

Вы можете просто написать, /dev/input/eventXчтобы имитировать событие. Формат описан в structисходных файлах ядра ( include/uapi/linux/input.hи include/uapi/linux/input-event-codes.h). evtestпереводит, так что вы также можете сравнить с hexdump -C /dev/input/eventX.

Вы также можете смоделировать событие X с помощью различных инструментов. Вы не можете смоделировать событие USB.

Время - это время, когда было создано событие, а не время процесса (что вы используете time).

Это кажется ближе к тому, что я хочу сделать. Если я могу снять клавиатуру и использовать миди-сигналы, переведенные на нажатия клавиш, я могу создать клавиатуру только для паролей. Как вы думаете, это все еще будет работать, или клавиатурные шпионы будут работать в форме ввода более высокого уровня. Спасибо за метод просмотра hexdump я думал, что я должен> или | к этому. Punkroku 5 лет назад 0
include / uapi / linux / input.h и include / uapi / linux / input-event-codes.h это было похоже на su !! пароль для инъекций? Ну СЬЮ МЕНЯ! Punkroku 5 лет назад 0
Если вы хотите транслировать MIDI-сигналы на нажатия клавиш клавиатуры, посмотрите на `uinput` и просто создайте свое собственное устройство ввода слоя вместо того, чтобы захватывать существующее. Гораздо чище. Нет, вы не можете использовать это для обхода клавиатурных шпионов. На самом деле, ничто не помогает обойти кейлоггеры, потому что приложение должно видеть ключевые события, как и кейлоггер. dirkt 5 лет назад 0
как насчет отправки ctrl c и win u + u или alt f4 кейлоггерам? где я могу найти ресурсы для ввода? Punkroku 5 лет назад 0
1) Почему ключ должен иметь какие-либо различия? 2) [Начало работы с uinput] (http://robocup.wtb.tue.nl/svn/techunited/trunk/dev/GeertJan/scrum_and_bump/vel_estim/mouse_input/documents/Getting%20started%20with%20uinput_%20the%20user % 20level% 20input% 20subsystem.pdf) dirkt 5 лет назад 0
Благодаря @dirkt &&, возможно, кейлоггер сломается по ctrl c или ctrl q в пароле. Или, возможно, установка клавиши со стрелкой сместит пароли и перезапишет символ? Punkroku 5 лет назад 0
Почему бы не попробовать это с evtest, если вы мне не верите? dirkt 5 лет назад 0