2013-02-20 117 views
0

我有一個使用該代碼的程序顯示應用:EnumWindows的犯規從Windows 8地鐵

EnumWindows eW = new EnumWindows(); 
eW.GetWindows(); 

和foreach循環。但是,這隻會返回Windows桌面應用程序,不會返回Metro應用程序。有沒有什麼方法可以找到所有打開的窗口與地鐵應用程序?另外,我如何找到Metro發射器。我怎麼能這樣做?

+2

不可以。Metro應用程序和桌面應用程序運行在獨立的環境中,兩個shell都不會遇到。 (在這裏經常被問到,但是我找不到一個人) – Deanna 2013-02-20 16:30:57

+0

他們只是不顯示在窗口中。一些功能可從IAppVisibility接口獲得,而不是您想要的。 – 2013-02-20 18:33:38

+0

我需要Windows的屬性,如大小,標題等...這是下一個循環的基本信息,在那裏我開始像按鈕,區域等障礙窗口元素。有什麼辦法如何做到這一點?如何在地鐵環境中找到正在運行的應用程序?謝謝 – We3b 2013-02-20 23:16:03

回答

0

你需要一個清單文件添加到您的應用程序並設置uiaccess =真

微軟指南: http://msdn.microsoft.com/en-us/library/bb756929.aspx

與uiaccess標誌的應用程序設置爲true使用EnumWindows的將產生在中高音的所有窗口然後再添加一些(你可能想要過濾掉)。