我在一個監視鼠標手勢的DLL中設置了全局鼠標鉤子。WH_MOUSE爲什麼不是全局鉤子?
一切都很完美,但是爲WH_MOUSE_LL設置了一個鉤子,它是一個低級鉤子,不需要在外部注入DLL中。
一旦我切換 - 更合適的人會說 - WH_MOUSE鼠標鉤,一切都崩潰了。一旦我在我的主應用程序(安裝鉤子的應用程序)之外單擊,鉤子就會損壞 - :: UnhookWindowsHookEx將失敗。
我只找到this guy saying at experts exchange: 「沒辦法,至少是Windows XP下的+ SVP2 WH_MOUSE不會走出去,你 必須使用WH_MOUSE_LL代替」
我正確設置了鉤子:在使用共享數據段的DLL中,發佈並不從掛鉤過程發送消息。
這爲什麼改變了?爲什麼沒有記錄?任何人遇到這個?謝謝!
BTW:我已經反向工程了一下流行StrokeIt應用程序,它使用WH_GETMESSAGE和WH_MOUSE掛鉤的組合,仍然適用於XP/Vista的...
必須在自動化應用程序的某個位置進行鼠標掛鉤。 Godspeed;) – 2009-06-18 21:55:55