小编sjc*_*omp的帖子

c ++挂钩到不同的应用程序,如何从进程ID中查找线程ID?

我想为应用程序添加一个钩子.我正在使用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)

谢谢,亚历山大.

c++ windows hook multithreading

6
推荐指数
1
解决办法
4364
查看次数

boost :: program_options如何重新加载值

我想从配置文件中重新加载一些值。我知道,po::store如果值存在于中,则不会更改variables_map。是否有替代方法即使值已经存在也可以替换?

我尝试从中删除要重新加载的值variables_map,但是po::store无论如何都不会添加新值(即使也无法访问旧值)。

c++ boost boost-program-options

5
推荐指数
2
解决办法
2307
查看次数