2012-12-21 69 views
2

在用C#編寫並在Windows 8上運行的Windows桌面應用程序中,如何檢測Windows 8是否處於桌面模式(即顯示桌面而不是現代UI)?如何檢測Windows 8是否顯示桌面

+0

好問題,但我很好奇 - 你爲什麼想知道? –

+0

我在桌面模式下顯示一個窗口,通知用戶USB設備固件更新將在5分鐘後開始。如果桌面不可見,則用戶可能看不到此警告,並且固件更新將自動啓動。我知道我們可以在現代UI屏幕上顯示吐司通知,但吐司只會出現幾秒鐘,因此用戶可能不會注意到吐司通知。如果桌面不可見,更好的解決方案不是開始5分鐘倒計時。 –

回答

4

儘管它是用C++編寫的,但Start Screen Visibility Sample應該是一個很好的起點。它使用COM對象來獲取系統中顯示Windows應用商店應用或開始屏幕的所有監視器的狀態,並說明如何在監視器狀態發生更改或「開始」屏幕可見性發生更改時接收通知。

+0

謝謝。這樣可行。此鏈接解釋瞭如何使用COM interop從C#執行此操作:http://stackoverflow.com/questions/12009999/imetromodeislaunchervisible-in-c-sharp-via-pinvoke –

相關問題