Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2010 12:35:34

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехват клавиш в чужом приложении

Да, думаю о написании кейлоггера для автоматизации пары программ, вопрос в том, как реализовать перехват клавиш? Сразу скажу, среда GNOME, для контроля мыши/клавиатуры сейчас использую pyatspi. Интересен был бы вариант с нажатием клавиш в моем скрипте и логированием в нем, а потом он их каким-то образом переадресует нужному мне приложению, например, через d-bus, если такое возможно. В том и вопрос - возможно ли? И если возможно, то есть ли пример кода?



Офлайн

#2 Авг. 31, 2011 11:47:20

baragoz
От:
Зарегистрирован: 2010-09-11
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехват клавиш в чужом приложении

windows. python 2.7

Тоже интересует данный вопрос.
Есть окно развернутое на весь экран (игруха). В этом окне необходимо определить нажатые клавиши и подменить их другими. Думаю надо копать в сторону активного окна и win32api, но пока безрезультатно.
На данном этапе есть программа, которая выполняет нужную задачу только когда активно окно терминала.

Буду признателен за инфу!



Офлайн

#3 Авг. 31, 2011 17:07:04

nerijus
От:
Зарегистрирован: 2010-06-03
Сообщения: 93
Репутация: +  1  -
Профиль   Отправить e-mail  

Перехват клавиш в чужом приложении

Или с setwindowshookex или с api хуками. И по моему тут без dll не обойтись.



Офлайн

#4 Авг. 31, 2011 19:01:02

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Перехват клавиш в чужом приложении

nerijus
И по моему тут без dll не обойтись.
Если NT то SetWindowsHookEx можно вызывать с адресом базы своего exe - dll не обязательна, но вот как это с питоном подружить… )
+ Если окно игры то оно может получать клавиши через DirectInput тут без перехвата WinAPI вообще никак.

Отредактировано (Авг. 31, 2011 19:02:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version