【发布时间】:2011-08-20 19:17:53
【问题描述】:
我想为应用程序添加一个挂钩。我正在使用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);
谢谢, 亚历山大。
【问题讨论】:
标签: c++ windows multithreading hook