奇怪的SetWindowsHookEx,哪位高手能解决下?
奇怪的SetWindowsHookEx,谁能解决下?...我用SetWindowsHookEx来钩我自己写的程序,将SetWindowsHookEx设置
奇怪的SetWindowsHookEx,谁能解决下?...
我用SetWindowsHookEx来钩我自己写的程序,
将SetWindowsHookEx设置成全局钩子时,程序正常:
主要代码如下:
C/C++ code //获取窗口句柄 HWND hWnd=FindWindow(NULL,_T("Test")); //获取窗口进程的pid DWORD pid=0; GetWindowThreadProcessId(hWnd,&pid); //设置键盘钩子 hHook=::SetWindowsHookEx( WH_KEYBOARD, KeyboardProc, GetModuleHandle(_T("DllInject.dll")), pid //将这里改为0时程序正常,困惑不已 );
hHook=::SetWindowsHookEx(
WH_KEYBOARD,
KeyboardProc,
GetModuleHandle(_T("DllInject.dll")),
pid //将这里改为0时程序正常,困惑不已,不改时用GetLastError()得到错误号为87
//翻了下MSDN,错误号87表示参数错误的意思,我不明白参数怎么会错误呢?
//我打开任务管理器查看我要钩的程序的pid值,跟我在程序中获得的pid值一模一样,
//真是不理解呀,望知道的朋友给解释一下呀
);
[解决办法]是线程id,不是进程id
可用GetWindowThreadProcessId的返回值