2013-10-17 73 views
1

有什麼方法可以通過不完整的名稱找到窗口嗎?FindWindow()不完整的名稱

例如,您如何找到一個可以有多個標題名稱的Google Chrome窗口?
堆棧溢出 - 谷歌瀏覽器

FindWindow函數將工作的偉大,如果窗口總是有相同的名稱,如下面的人會解決這個問題的功能。

HWND chrome = FindWindow(NULL,_T("Stack Overflow - Google Chrome")); 
SetForegroundWindow(chrome); 

但是,如果名稱不斷變化(如瀏覽器)會發生什麼?我怎樣才能通過搜索一個固定的開始/結束找到一個窗口?

我在找的是類似FindWindow(NULL,_T("something here - Google Chrome")的東西。
有什麼辦法可以做到嗎?

+1

使用FindWindowEx並按類 – user1233963

+0

搜索你還支持Win98嗎? –

回答

3

您可以使用窗口類名來代替窗口標題。舉例來說,你可以用

HWND firefox = FindWindow(_T("MozillaWindowClass"), NULL); 

您可以使用像WinSight,WinSpy ++,或(我用找到的Firefox窗口類的)任何窗口間諜類型的應用程序的AutoHotkey的窗口Spy中發現Firefox瀏覽器。

有關更多信息,請參閱FindWindow的MSDN文檔。

+4

+1。但是如果你需要更嚴格的控制(例如由於其他應用程序的誤報,或者如果類名不總是一致的(不太可能)),那麼你可以使用['EnumWindows()'](http:// msdn .microsoft.com/en-us/library/windows/desktop/ms633497%28v = vs.85%29.aspx)並手動搜索所需的窗口。 –

相關問題