| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > GetCursorPos hook |
| Автор: renderrr 14.7.2009, 12:05 |
| хочу поставить глобальный хук на GetCursorPos, дабы он всегда возвращал 0. чем это чревато для простых пользователей? у себя пока заметил невозможность загрузить explorer, regedit, taskmgr. зачем им эта функция? |
| Автор: dumb 14.7.2009, 14:30 |
| http://forum.vingrad.ru/act-Help/CODE-01/HID-17.html |
| Автор: renderrr 14.7.2009, 14:43 |
| не нужны тут телепаты хотя, если хотите, обьясню: я написал дллку, которая прописана в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs, таким образом она инжетится во все запускаемые процессы. в дллке есть мною написаные функции. я подменяю адрес WinAPI GetCursorPos в памяти процесса на адрес МОЕЙ функции. а моя функция возвращает процессу вместо координат курсора 0. так вот, чем это чревато, помимо невозможности использования этой функции? могу и код дать, но он не на с++ |
| Автор: dumb 14.7.2009, 15:00 |
| хорошо, что хоть немного расписал, ибо тут не надо быть телепатом, чтобы понять, что проблема скорее всего не в возвращаемом результате, а в некорректности установки/работы хука. начнем с малого: на момент загрузки dll через appinit вовсе не факт, что user32.dll уже прогружена. ты это учел? |
| Автор: renderrr 14.7.2009, 15:10 |
| да, помимо GetCursorPos там хуки на: mouse_event, keyb_event, SetCursorPos, и они работают корректно(хуки), проблема возникла только с GetCursorPos, винда видимо активно эту функцию юзает |
| Автор: dumb 14.7.2009, 15:33 |
| ок, а ты пробовал не нулить результат? - просто чтобы сквозняком через хук проходило. |
| Автор: renderrr 14.7.2009, 15:57 |
| хм, извините, оказалось всё из-за моей невнимательности |