Найти - Пользователи
Полная версия: возможно ли перехватить нажатие кнопки в стороннем приложении?
Начало » Python для новичков » возможно ли перехватить нажатие кнопки в стороннем приложении?
1
Virtul
Есть задача - средствами пайтона в виндовсе во-первых перехватывать события нажатия кнопки мыши/клавы в других приложениях, во-вторых получать какой-нибудь идентификатор нажатого элемента управления (кнопок, чекбоксов, пунктов меню, в общем всего)

Первая часть реализована в pyHook - можно узнать в каком окошечке по каким координатам было клацнуто мышкой и т.п.
Но вот со второй - проблемка, где-то нагуглил мнение, что это вообще нельзя сделать с помощью пайтона, т.к. в целевое приложение нужно внедрять dll (или как-то так). Действительно ли это так? Объясните, пожалуйста, поподробнее почему. Для С есть hook библиотеки, в python же можно их использовать или я не о том? Может можно через ironpython+.net это реализовать?

Заранее благодарю за ответы.
nerijus
Ну если уж можно на питоне делать API хуки, тогда можно и нажатие клавиш ловить. Вот посмотрите пару линков:
http://www.rohitab.com/discuss/topic/37018-api-hooking-in-python/
http://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/285120-pymem-python-process-memory-editing.html

P.S. для этого не обязательно подгружать длл. Когда то делал программу, которая все прямо из памяти делала. С начала CreateRemoteThread, потом узнаем своё место в чужой памяти с “call” без “ret”. Потом узнаем адрес “peb” (process environment block) при помощи FS:, из него берём адрес kernel32.dll тогда находим GetProcAddress и вызываем что угодно. Для такого подхода не нужно загружать ни какие файлы, но программировать приходится на очень низком уровне.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB