無論用戶何時按下「window key + s」,我都需要我的WPF應用程序獲得焦點。WPF應用程序中的全局KeyHook
我的解決方案是用SetWindowsHookEx鉤住鍵盤事件。但是我得到的回報手柄始終是0,當我打電話給GetLastWin32Error值也爲0(即因此它實際上報告說,以前操作成功)
_hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, _hookFunction, _hinstance, 0);
if (_hookHandle == IntPtr.Zero)
throw new Win32Exception(Marshal.GetLastWin32Error());
(不用說,_hinstance具有有效價值等_hookFunction)
任何想法?其他方案?
謝謝。
你能提供給您的P/Invoke簽名和WH_KEYBOARD_LL的價值? – SwDevMan81 2009-12-28 16:13:53
[DllImport(「user32.dll」,SetLastError = true)] private static extern IntPtr SetWindowsHookEx(HookType code,HookProc func,IntPtr instance,int threadID); WH_KEYBOARD_LL = 13 – Eden 2009-12-28 17:59:10