我面临的问题是,我无法获得 SetWindowsHookEx 返回的有效 hookID 并且 GetLastWin32Error() 也返回 0。我写了下面的代码:
_LowLevelhookID = SetWindowsHookEx((int)HookType.WH_KEYBOARD_LL, LowLevelKeyboardHookHandler, IntPtr.Zero, GetCurrentThreadId());
int errorCode = -1;
if(_LowLevelhookID == (IntPtr)0)
{
errorCode = Marshal.GetLastWin32Error();
}
实际上,我只想为我的应用程序创建一个低级键盘挂钩,根据 SetWindowsHookEx 参数描述,如果我想设置当前线程 ID 并仅捕获我的应用程序的键事件,我应将 hMod 参数设置为 null。
任何人都可以确认 GetCurrentThreadId() 是希望运行我的应用程序的 ThreadID 的正确方法吗?