sjc*_*omp 6 c++ windows hook multithreading
我想为应用程序添加一个钩子.我正在使用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);
Run Code Online (Sandbox Code Playgroud)
谢谢,亚历山大.
GetWindowThreadProcessId()
返回线程 ID。您错误地将线程 ID 分配给进程 ID 变量。而是写:
HWND windowHandle = FindWindow(NULL, _T("SomeOtherApp"));
DWORD threadId = GetWindowThreadProcessId(windowHandle, NULL);
HHOOK hook = ::SetWindowsHookEx(WH_CBT, HookCBTProc, hInst, threadId);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4364 次 |
最近记录: |