2012-12-12 85 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,因为这是全局系统状态,而不是应用程序的状态。 –

相关问题