Событие нажатия кнопки в чужом приложении

Drayvhard

Здравствуйте! Можно как то отловить нажатие кнопки в другом приложении зная его handle? Знаю использую WinApi можно отлавливать нажатие кнопок зная их ID. Но как такое можно сделать в таком языке как C#.NET? Куда копать? Wndproc? и как поставить обработку событий? Заранее благодарен!
6 ответов

Drayvhard

Drayvhard, внедриться в процесс и переназначить обработчик событий WndProc. Используя только C# - можно, но очень (!) геморно - записать в память процесса ASM код и передать ему управление. Легче наваять DLL на C и её внедрить.


Drayvhard

Легче наваять DLL на C и её внедрить.
Всегда было интересно как это сделать , как именно внедрить свою dll в чужой процесс , если можно общие описание ?!


Drayvhard

Игорь с++, на WASM'е есть описание, на хабре... Способов достаточно много: от патчинга импорта до записи в реестр.Я так делал.


Drayvhard

на хабре
И еще один пример с хабра. http://habrahabr.ru/post/146791/ Очень интересный способ внедрения. Но нужен неуправляемый код, так что все что на платформе .NET не подходит.


Drayvhard

Прекращаем оффтоп.


Drayvhard

Всем спасибо за ответы! Тогда dll injection=)