我建立在C++的應用程序,使用Windows掛鉤來控制第三方程序。我正在製作的程序是一個教程程序,展示如何使用這些第三方程序。我可以找到想要掛接的第三方程序的進程ID,然後我可以查詢此進程ID以查找要用作Windows API函數SetWindowsHookEx的參數的線程ID列表。不過,我擔心的是,從正在運行的進程中的線程ID列表中,我將掛鉤到可能隨時完成的線程。理想情況下,我想掛鉤運行主要GUI的線程,這很可能是最長的活動線程之一(即使它不是教程程序設計爲與GUI一起工作的最長的活動線程,它仍然是理想的)。如果第三方應用程序有多個GUI,那麼我想找到主GUI的線程ID。C++從線程ID列表中找到GUI線程
所以我的問題是,從線程ID,我從查詢進程id得到的名單是有辦法找到任何主界面ID或其他合適的線程將被激活,直到程序已經退出?顯然,我選擇的線程ID需要有一個事件隊列,這樣我就可以掛鉤了。
感謝您的回覆。我如何知道窗口是否設置了ws_caption? – Clive 2011-05-18 09:34:26
在寫作之前務必閱讀StackOverflow,特別是在提問時。 [被要求在2010年4月回答特定問題(http://stackoverflow.com/questions/2679680/getting-window-style) – JdeBP 2011-05-18 09:54:02
雖然WinAPI的genrally確實允許多線程GUI,大多數GUI框架將限制你一個反正用戶交互的線程。誰最近用純WinAPI寫作? – 2013-06-01 23:35:24