Вызов функции каждый раз при нажатии клавиши (независимо от того, какое окно имеет фокус)?
Я хочу написать программу (на python) для Linux (Ubuntu Linux 9.10), которая будет отслеживать, сколько нажатий клавиш в секунду / минуту я делаю. Это включает в себя обычные буквенные клавиши, и управление / сдвиг / пробел / и т.д.
Есть ли способ подключиться к X, чтобы я мог сказать "когда нажата клавиша, вызовите эту функцию?". Поскольку я хочу, чтобы это работало в фоновом режиме, пока я работаю нормально, этот вызов функции должен быть в состоянии знать обо всех нажатиях клавиш для всех программ. Я полагаю, это немного похоже на кейлоггер.
Это только личная вещь, поэтому мне не важно, чтобы она работала в Windows/OSX, и мне не важно, когда люди устраивают удаленные сеансы X и т. Д.
2 ответа
Посмотрите, что уже сделали другие. Вы можете посмотреть, как этот код pykeylogger обрабатывает Linux в его бэкэнде, и посмотреть, работает ли он для вас.
Я бы порекомендовал вам взглянуть на вопрос Stackru: существует ли кроссплатформенный низкоуровневый API Python для захвата или генерации событий клавиатуры?
Вы также можете посмотреть на простой Python Keylogger.
Хотя он не написан на Python, вы также можете взглянуть на LKL Linux KeyLogger. В WEB-NES-BAY есть инструкции по использованию LKL Linux KeyLogger.