2012-12-12 126 views
5

Enable and Control DWM CompositionDwmIsCompositionEnabled仍然在Windows 8中使用嗎?

注意作爲Windows 8中的,本節中的信息不再 有效。 DWM不能再以編程方式禁用,也不能在應用程序試圖繪製到主顯示屏 表面時禁用DWM。以下信息僅適用於Windows 7和 較早的系統。

好的。所以我們不能再用以編程方式禁用DWM。但它仍然可以被禁用?在Windows 8上,DwmIsCompositionEnabledpfEnabled會始終設置爲TRUE?

如果組成可以以某種方式被禁用,那麼DwmIsCompositionEnabled是否仍然在某種程度上有用?

+0

沒有DWM的商店應用程序可能不存在。我不明白這個問題的重點,你將編寫只能運行在Win8上但不能運行在Win7上的代碼?這有點不明智。 –

+2

是什麼讓你覺得呢?我的應用根據DWM狀態在Vista/7上進行自定義繪製,因此我只想知道DwmIsCompositionEnabled是否始終在Windows> = 8上返回true。 –

回答

8

Desktop Window Manager is always on (Windows) MSDN上:

在Windows 8中,桌面窗口管理器(DWM)是始終開啓,並且不能由最終用戶和應用程序是 禁用

在Windows 8中,DWM桌面組成是核心操作系統 組件和無法禁用。除少數例外,桌面 組合總是在;它在用戶登錄前啓動,並且在會話期間保持活動狀態。

所有的存在於 窗口7用於禁用桌面組合的選項被除去

的應用不能使用DwmEnableComposition禁用桌面組合物。 爲了保持向後兼容性,對這個API的調用將返回成功 ;然而,桌面組合沒有被禁用

嗯,有一個非常明確的答案。我有點好奇,「有幾個例外」是指什麼,儘管......如果你碰巧知道,請添加評論。 :)

3

相反的是,人們一提到(「他們刪除代碼」,「基本主題是不再出現」等)老的視覺風格是生命力,在Windows 8的

唯一問題在於如何將其用於正常應用並不那麼清楚!

這不是禁用DWM本身,但它肯定是禁用組成:只需下載Windows XP的PowerToy計算器,並嘗試在Windows 8兼容模式下運行它,你會看到舊的主題是仍然存在:

+1

從技術上講,任何應用程序都可以將DWM非客戶端呈現策略設置爲禁用DwmSetWindowAttribute方法,那麼基本主題會重新出現而不是玻璃。但是,不會更改IsCompositionEnabled返回的afaik,因爲這是全局系統狀態,而不是應用程序的狀態。 –

相關問題