2016-08-23 90 views
1

在Windows 10中,可以從任務欄打開幾個菜單/面板,例如「操作中心」和「音量面板」等。如果我嘗試使用EnumWindows(),則未列舉這些窗口,我找到了解決方法 - - 而不是使用EnumWindows(),我使用FinWindowEx(),現在我可以枚舉這些面板和其他Metro UI特定的菜單。有沒有辦法找出Metro UI面板在Windows 10中是否可見?

唯一的問題是我無法確定它們是否可見。如果我嘗試撥打IsWindowVisible()並將「動作中心」HWND作爲參數,則該函數始終返回TRUE。對於其他Metro UI面板(電池使用面板,音量面板,搜索面板等)也有同樣的結果。

+1

爲什麼不問你想解決的實際問題,而不是詢問你的解決方案? – IInspectable

+0

我認爲這個問題有點複雜,但可能必須是因爲它爲科學公司試圖實現的目標提供了更多背景。此外,它還填補了顯示問題的要求和「迄今爲止嘗試過的內容」的要求。他/她找到了窗戶,但正試圖瞭解它們是否真的可見。這是一個有效的問題(我不幸的是沒有答案)。 –

+0

@ScienceSE - 你能提供一點點背景知道爲什麼你需要這些信息嗎?像這樣的數據點有時可以幫助創建這些API的工程師決定他們是否應該幫助您,或者公開/記錄可以實現您所需的API的API。 –

回答

3

我剛剛找到了解決方案。由於到目前爲止還沒有答案,我認爲這是一個最好的解決方案(目前我不知道其他解決問題的方法)。

因此,基本上爲了識別窗口是否可見,我們調用DwmGetWindowAttribute()函數(除IsWindowVisible()之外)通過DWMA_CLOAKED作爲第二個參數。當那些Windows 10特定面板在屏幕上可見時,此屬性設置爲0

相關問題