我想向应用程序添加一个钩子。我在用SetWindowsHookEx
我可以创建一个系统范围的挂钩,但我想为特定应用程序创建一个挂钩。我需要目标应用程序的线程 ID 才能挂钩它。我知道窗口的标题,我知道 exe 名称,从这些我可以获取窗口句柄和进程 id,但如何获取线程 id?我看到一篇关于如何做到这一点的帖子c#,但我不知道如何在 C++ 中获取线程列表。
HWND windowHandle = FindWindow(NULL, _T("SomeOtherApp"));
DWORD processId = GetWindowThreadProcessId(windowHandle, NULL);
DWORD threadId = ??? // How do I get thread id here?
HHOOK hook = ::SetWindowsHookEx( WH_CBT, HookCBTProc, hInst, threadId);
谢谢,
亚历山大.
GetWindowThreadProcessId()
返回线程 ID。您错误地将线程 ID 分配给进程 ID 变量。而是写:
HWND windowHandle = FindWindow(NULL, _T("SomeOtherApp"));
DWORD threadId = GetWindowThreadProcessId(windowHandle, NULL);
HHOOK hook = ::SetWindowsHookEx(WH_CBT, HookCBTProc, hInst, threadId);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)