2012-06-27 70 views
4

我正在開發一個庫,我希望能夠檢測它是否在Metro風格應用程序內運行,以選擇性地禁用/啓用某些功能。可能嗎?如何檢測是否在Windows Metro應用程序進程中運行?

+0

這種類型的問題是共同的,答案總是一樣的。該應用程序沒有任何問題告訴你它是一個Metro應用程序。所以只是讓它告訴你。總是比試圖處理鏈接器錯誤或運行時錯誤更容易。 –

回答

2

您可以使用IMetroMode界面來檢查您的庫是否已加載到Metro風格的應用程序中。如果pMode將保存MMM_METRO,則調用GetMonitorMode()方法,然後確保您在Metro應用程序內部運行。

+0

可能是好的,但由於它在低於8的版本中不可用,在這些舊版本中不會使用它會導致錯誤? –

+1

@JoachimPileborg @JoachimPileborg當然,他必須在嘗試創建該接口的實例之前檢查Windows版本(並且如果在該情況下不可用,則確定他沒有在Metro上運行...) –

+0

@Adriano:謝謝,這似乎可行。 – wilx

0

下面是一個簡單的測試:

if (WinJS) { 
    // WinJS exists in global if in WinRT app 
} 
相關問題