我想添加一個鉤子到應用程序。我正在使用SetWindowsHookEx
,我可以創建一個系統範圍的鉤子,但是我想爲特定的應用程序創建一個鉤子。我需要有目標應用程序的線程ID掛鉤它。我知道窗口的標題,我知道exe名稱,從這些我可以得到窗口句柄和進程ID,但我如何獲得線程ID?我看到一篇關於如何在c#中完成的文章,但我看不到如何獲得C++中的線程列表。C++掛鉤到不同的應用程序,如何從進程ID找到線程ID?
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);
謝謝, 亞歷山大。
謝謝。我過於複雜的事情。 – sjcomp 2011-05-10 00:42:59