如何在Windows Vista / Seven中标记应用以通过注册表或NSIS脚本禁用桌面合成?
通常在应用程序属性的兼容性设置中完成。
答案 0 :(得分:0)
如果你真的必须,可以使用WriteRegStr指令在“SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers”的注册表中添加一个条目(我认为没有官方API为此,因为用户应该控制这些选项,而不是开发人员(毕竟,你可以修复你的破坏的应用程序)有一个名为SHGetAppCompatFlags的未记录的函数来读取标志,但没有“setter”AFAIK )
答案 1 :(得分:0)
当您的应用程序启动时,请使用DwmEnableComposition
关闭合成:
DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
这将禁用合成,直到(您的)违规过程退出。
注意:此API不会修改用户对合成的偏好 - 仅限于您的应用程序不兼容。