helos,
в WinXP мое приложение успешно использует глобальный коврик для мыши, чтобы получить положение мыши и щелчки, даже если у него нет фокуса.ловушка находится в отдельном .dll и инициализируется следующим образом (в delphi):
SetWindowsHookEx(WH_MOUSE, @MouseHookCB, HInstance , 0);
теперь на Win7 это в основном также работает во время выполнения, но я больше не могу хорошо отлаживать свое приложение (что я могупод ХР).как только я достиг точки останова, Win7 полностью зависает.я не могу переключиться на другой процесс (даже диспетчер задач не открывается).если мне повезет, я могу остановить свой процесс в IDE.в большинстве случаев, хотя я должен перезагрузить / выйти из системы, чтобы восстановить доступ.
Я знаю, что проблема связана с крючком мыши, так как его нет, если я не использую этот крючок.это даже если моя процедура перехвата ничего не делает, кроме следующего:
CallNextHookEx(MouseHook, Code, wParam, lParam);
т.е.просто наличие крючка вызывает проблемы.
имея globalhooks.dll, что-то записать в EventLog, я вижу, что он все еще активен, даже когда я нахожусь на точке останова.
Я пытался использовать хук низкого уровня через WH_MOUSE_LL, который в основном работает, нодает мне странные задержки перемещения мыши при установке хука и иногда при изменении размера окна.также происходит остановка на несколько секунд при достижении точки останова, но, по крайней мере, система восстанавливается через ~ 5 секунд ... поэтому эта опция еще хуже, поскольку она также влияет на время выполнения.
любая идея, почему зависает крючок WH_MOUSEмое приложение во время отладки в первую очередь?