禁用应用程序的桌面组合

时间:2010-05-24 14:23:08

标签: registry compatibility nsis dwm

如何在Windows Vista / Seven中标记应用以通过注册表或NSIS脚本禁用桌面合成?

通常在应用程序属性的兼容性设置中完成。

2 个答案:

答案 0 :(得分:0)

如果你真的必须,可以使用WriteRegStr指令在“SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers”的注册表中添加一个条目(我认为没有官方API为此,因为用户应该控制这些选项,而不是开发人员(毕竟,你可以修复你的破坏的应用程序)有一个名为SHGetAppCompatFlags的未记录的函数来读取标志,但没有“setter”AFAIK )

答案 1 :(得分:0)

当您的应用程序启动时,请使用DwmEnableComposition关闭合成:

DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);

这将禁用合成,直到(您的)违规过程退出。

注意:此API不会修改用户对合成的偏好 - 仅限于您的应用程序不兼容。