无论用户何时按下“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