海洛斯,上斷點和SetWindowsHookEx WH_MOUSE凍結在Win7
在WinXP我的應用程序已經成功地利用全球mousehook檢索mouseposition和點擊,即使它不具有焦點。鉤是在一個單獨的.dll和正在初始化像這樣(在Delphi):
SetWindowsHookEx(WH_MOUSE, @MouseHookCB, HInstance , 0);
現在Win7上這種運行期間也基本工作原理,但我不能再調試應用程序很好(我可以在XP下)。只要我遇到斷點,Win7就會完全凍結。我無法切換到另一個進程(即使taskmanager無法打開)。如果我很幸運,我可以在IDE中停止我的過程。大多數時候,儘管我必須重新啓動/註銷才能重新獲得訪問權限。
我知道,因爲如果我不使用掛鉤,不存在這個問題是關係到鼠標鉤子。 這是即使我hookprocedure什麼也不做,但以下幾點:
CallNextHookEx(MouseHook, Code, wParam, lParam);
即。只是鉤子的存在會導致麻煩。有
的globalhooks.dll寫東西到事件日誌我看到它,甚至當我在一個斷點仍然有效。
我試圖用通過WH_MOUSE_LL一個lowlevelmouse掛鉤,基本上工作,但讓我奇怪的鼠標移動的延遲在安裝掛鉤,有時在調整大小的窗口。當遇到斷點時也會凍結幾秒鐘,但至少系統會在〜5秒後恢復......因此,此選項更糟糕,因爲它也會影響運行時間。
爲什麼WH_MOUSE鉤在首位調試期間凍結我的應用程序的任何想法?