Подключение c ++ к другому приложению, как найти идентификатор потока из идентификатора процесса?

Я хочу добавить ловушку в приложение. Я использую SetWindowsHookEx и могу создать общесистемную ловушку, но я хочу создать ловушку для конкретного приложения. Мне нужно иметь идентификатор потока целевого приложения, чтобы его зацепить. Я знаю заголовок окна, я знаю имя exe, и из них я могу получить дескриптор окна и идентификатор процесса, но как мне получить идентификатор потока? Я видел сообщение о том, как это сделать в 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);

Спасибо, Александр.

6
задан Community 23 May 2017 в 12:16
поделиться