C++ DwmEnableComposition未启用Aero
我正在尝试为我的应用程序启用Aero(一个在浏览器中运行“单进程”的Firefox插件),但没有成功。操作系统是64位的Windows 7 代码如下:C++ DwmEnableComposition未启用Aero,c++,winapi,dwm,C++,Winapi,Dwm,我正在尝试为我的应用程序启用Aero(一个在浏览器中运行“单进程”的Firefox插件),但没有成功。操作系统是64位的Windows 7 代码如下: BOOL bEnabled = FALSE; if(SUCCEEDED(DwmIsCompositionEnabled(&bEnabled)) && !bEnabled){ HRESULT hres = DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
BOOL bEnabled = FALSE;
if(SUCCEEDED(DwmIsCompositionEnabled(&bEnabled)) && !bEnabled){
HRESULT hres = DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
}
DwmEnableComposition应该启用合成,但它不启用,函数还返回:
S_OK
任何帮助都将不胜感激,谢谢 在系统范围内禁用时无效。它的唯一用途是通知Windows您正在启动或完成与DWM不兼容的操作
此外,操作系统的外观取决于用户,而不是由程序来配置。在系统范围内禁用时无效。它的唯一用途是通知Windows您正在启动或完成与DWM不兼容的操作
此外,由用户决定其操作系统的外观,而不是由程序来配置它。您不能启用DWM组合;您只能请求将其禁用。当你需要关掉它的时候,你打电话
DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
从MSDN:
当所有已禁用合成的进程调用DwmEnableComposition以启用它或已终止时,DWM合成将自动启用
你不需要启用它,你只需要宣布你不再需要禁用它。(Microsoft不允许您启用合成的原因是)
当你落后时,你也应该放弃。同样来自MSDN:
注意自Windows 8消费者预览版起,此功能已被弃用。DWM不能再以编程方式禁用
不能启用DWM合成;您只能请求将其禁用。当你需要关掉它的时候,你打电话
DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
从MSDN:
当所有已禁用合成的进程调用DwmEnableComposition以启用它或已终止时,DWM合成将自动启用
你不需要启用它,你只需要宣布你不再需要禁用它。(Microsoft不允许您启用合成的原因是)
当你落后时,你也应该放弃。同样来自MSDN:
注意自Windows 8消费者预览版起,此功能已被弃用。DWM不能再以编程方式禁用
感谢您的回答,程序会询问用户是否希望在机器上启用Aero。MSDN说它将启用或禁用Aero,我只能禁用Aero,但不能使用此方法启用它;因此,我最后查看了uxsms服务,首先打开Windows 7基本主题,然后启动该服务。感谢您的回答,该程序会询问用户是否希望在机器上启用Aero。MSDN说它将启用或禁用Aero,我只能禁用Aero,但不能使用此方法启用它;因此,我通过查看uxsms服务来完成这项工作,首先打开Windows7基本主题,然后启动该服务。