2009-06-27 32 views
0

我想知道是否有可能知道外部應用程序是否有一個窗口顯示在任務欄上。我有一個程序有時會顯示一條錯誤消息,並顯示在任務欄上。如果我「關閉」這個信息,它將會隱形,但從我所看到的它仍然存在。因此,我知道該窗口是否可見並且因此「可點擊」的唯一方法是檢查它是否顯示在任務欄上。(Win Api)檢查外部應用程序窗口是否在任務欄上

我該怎麼做?

感謝

+0

也許如果我檢查WS_VISIBLE它也會起作用,我不知道? – 2009-06-27 16:16:54

回答

0

首先使用間諜++(隨視覺工作室)找出類名,窗口名稱和窗口的層次結構。提示:在屏幕上顯示錯誤信息時,運行spy ++,按Alt + F3,然後按Alt + D,然後將取景器工具吸到錯誤消息窗口中,然後按確定。

如果窗口是頂層(即其父級是桌面),則使用FindWindow API。如果窗口不是最高級別(即其父窗口是其他窗口),則首先使用FindWindow查找主窗口,然後使用FindWindowEx(可能遞歸)搜索該錯誤消息窗口。

0

管理任務欄的記錄COM接口是ITaskbarList,但它只允許你添加/刪除按鈕,你不能獲得一個列表現有的按鈕。

所以,你有三種選擇:

一)進入無證土地,發現從2000年改爲XP任務欄及其子標籤控件或工具欄(),看看它的每一項數據無證(IIRC有與此信息一個開源改變任務欄按鈕順序應用程序在那裏)

b)檢查你所關心的樣式窗口約(WS_VISIBLE並沿着這些線路(沒有所有者或WS_EX_APPWINDOW),而不是WS_EX_TOOLWINDOW)或東西

C)掛鉤/子類破損的應用程序

相關問題