2012-03-15 149 views
3

我有一個從主應用程序中的輔助(非GUI)線程啓動的插件DLL。該DLL必須從應用程序的主窗口中獲取鍵盤事件。我使用的是SetWindowsHookEx(),效果很好。但是,如果我在鉤子處於活動狀態時在Visual Studio中遇到了斷點,然後按一個鍵,則Visual Studio和我的應用程序將完全鎖定。這是一個問題,因爲我通常使用F鍵來遍歷代碼。如果我使用鼠標並從Visual Studio的「調試」菜單中前進,它可以正常工作。但是使用F10等人。是這樣一種習慣,我通常忘記使用鼠標。Windows鍵盤掛鉤掛起調試器

有什麼我可以做的,讓我的鍵盤快捷鍵回來?或者聽不同的方法來聽鍵盤?

回答

4

這是非常不可避免的,調試器中斷會阻止處理通知的掛鉤,因此鍵盤死機。在另一臺機器上使用遠程調試器是調試代碼的好方法。您還需要增加掛接超時時間,以便Windows在調試時不會破壞掛鉤,HKEY_CURRENT_USER \ Control Panel \ Desktop \ LowLevelHooksTimeout設置。假設你正在使用WH_KEYBOARD_LL。