Как можно считать нажатия клавиш, когда программа Python не находится на переднем плане?

Если вы только что добавили опцию выбора в форму и хотите активировать событие изменения, я обнаружил, что требуется setTimeout, иначе jQuery не заберет вновь добавленное поле выбора:

window.setTimeout(function() { jQuery('.languagedisplay').change();}, 1);
6
задан Paul Tarjan 28 June 2009 в 06:20
поделиться

4 ответа

Похоже, вам понадобится http://patorjk.com/keyboard-layout-analyzer/

Эта удобная программа проанализирует блок текста и сообщит вам, как далеко ваш пальцы должны были путешествовать, чтобы набрать его, а затем рекомендовать ваш оптимальный макет.

Чтобы ответить на ваш исходный вопрос, в Linux вы можете читать из / dev / event * для событий локальной клавиатуры, мыши и джойстика. Я считаю, что вы могли бы, например, просто cat / dev / event0> keylogger . События являются экземплярами struct input_event . См. Также http://www.linuxjournal.com/article/6429 .

Модуль Python struct - удобный способ синтаксического анализа двоичных данных.

Для OSX возьмите посмотрите исходный код logkext. http://code.google.com/p/logkext/

4
ответ дан 16 December 2019 в 21:45
поделиться

В зависимости от того, какую статистику вы хотите собирать, возможно, вам не придется писать это самостоятельно; Программа Workrave - это программа, напоминающая вам о небольших перерывах, которая делает это путем отслеживания активности клавиатуры и мыши. Он хранит статистику этой активности, которую вы, вероятно, могли бы использовать (если вам не нужна очень подробная / более конкретная статистика). В худшем случае вы можете посмотреть исходный код (C ++), чтобы узнать, как это делается.

0
ответ дан 16 December 2019 в 21:45
поделиться

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

В Windows библиотека PyHook предоставит вам необходимую функциональность.

В Linux вы можете использовать Библиотека Python X (при условии, что вы используете графический рабочий стол).

Обе они используются для хорошего эффекта pykeylogger . Лучше всего загрузить исходный код (см., Например, pyxhook.py), чтобы увидеть конкретные примеры того, как фиксируются события нажатия клавиш. Это должно быть тривиально изменить для суммирования распределения ключей, а не записи порядка.

2
ответ дан 16 December 2019 в 21:45
поделиться

Поскольку текущее расширение Record X-сервера, похоже, не работает, использование pykeylogger для Linux на самом деле не помогает. Взгляните на evdev и его демонстрационную функцию . Решение более неприятное, но оно, по крайней мере, работает.

Все сводится к настройке подключения к устройству

import evdev
keyboard_location = '/dev/input/event1'  # get the correct one from HAL or so
keyboard_device = evdev.Device(keyboard_location)

Затем регулярно опрашивайте устройство, чтобы получить статус ключей и другую информацию:

keyboard_device.poll()
2
ответ дан 16 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: