0
當我設置非全局WH_KEYBOARD鉤子時,它工作正常,並且所有的鍵都被捕獲。但是,如果我按下Alt + Tab然後返回窗口,掛鉤將無故停止工作。 這是我試圖阻止對proccess所有鍵盤消息使用id =根我的鉤PROC:帶Alt + Tab的WH_KEYBOARD停止工作
private static IntPtr HookCallback (int nCode, IntPtr wParam, IntPtr lParam)
{
var proc = 0u;
GetWindowThreadProcessId(GetForegroundWindow(), out proc);
if (proc != root) return CallNextHookEx(hooks[0], nCode, wParam, lParam);
return new IntPtr(1);
}
對於開發我使用32位Windows在VirtualBox中。
UPDATE: 它也並不依賴於阻塞或參數傳遞給下一個鉤子:代碼變種,什麼都不做,然後調用一個鉤子的Alt + Tab後停止工作了。如果沒有使用Alt + Tab鍵,那麼失去焦點並激活窗口不會停止掛鉤。
嗯,你在你的問題說,你要設置一個非全局鉤子,但你在這個答案中顯示的代碼(「之前」版本)創建一個全局鉤子。這可能就是爲什麼沒有人可以幫助你。您在問題中提供了不正確的信息。 –