|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Контроль нажатия клавиш
Всем привет!
Помогите пожалуйста решить задачу. Есть компьютер. На нем запущенна программа, которая время от времени симулирует нажатия клавиш клавиатуры и мышки. Каким образом можно вычислить эту программу и определить нажимал пользователь клавиши или же эти нажатия были просимулированны? Заранее спасибо! |
#2
|
||||
|
||||
А никак. Разве что ставить ядерный отладчик и потом смотреть. Либо хукать функцию SendMessage и смотреть с какого процесса шел вызов... Короче очень тяжко.
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#3
|
|||
|
|||
теоретически, можно.
практически, да с учетом Висты - нереально. Но потеоретизировать можно. Дело в том, что все софтовые нажималки-кликалки обычно пользуются только вызовом SendMessage или PostMessage. Соответсвенно, хукнув их можно отследить нужные сообщения, типа WM_CHAR. Шаг второй - установка соотв. драйвера устройства в цепочку. Причем как можно "ниже" (т.е. ближе к устройству). Вот оттуда ты получишь информацию о том, действительно ли произошло нажатие клавиши. Далее просто сравниваешь эти 2 лога (т.к. Windows не является ОС реального времени, то там явно будет некоторый разброс по времени). Если соотв. события присутствуют в обеих логах - значится человек. Если только в одном -значится программа. Думаю таким образом можно это отследить. Но, повторюсь, реально сделать такую штуку еще можно, хотя делать зачузаешься, но вот незаметно подсадить - вот это уже будет высший пилотаж |
#4
|
|||
|
|||
Ясно. Спасибо. Надо попробовать...
А если программа использует mouse_event или keyboard_event. Может по ним возможно отследить или они тож на PostMessage и Sendmessage основываются? |