Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
не нужны тут телепаты smile я же спросил, что будет, если GetCursorPos всегда будет возвращать 0? и зачем эта функция, например, в таск менеджере винды?


хотя, если хотите, обьясню:
 я написал дллку, которая прописана в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs, таким образом она инжетится во все запускаемые процессы. в дллке есть мною написаные функции. я подменяю адрес WinAPI GetCursorPos в памяти процесса на адрес МОЕЙ функции. а моя функция возвращает процессу вместо координат курсора 0. так вот, чем это чревато, помимо невозможности использования этой функции?
могу и код дать, но он не на с++ smile

Автор: 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
хм, извините, оказалось всё из-за моей невнимательности smile - забыл в свою функцию добавить параметр.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)