Отключить композицию рабочего стола для приложения - PullRequest
1 голос
/ 24 мая 2010

Как пометить приложение в Windows Vista / Seven для отключения композиции рабочего стола через реестр или сценарий NSIS?

Обычно это делается в настройках совместимости в свойствах приложения.

Ответы [ 2 ]

0 голосов
/ 05 июня 2011

Когда ваше приложение начинает отключать композицию с помощью DwmEnableComposition:

DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);

Это отключит композицию до тех пор, пока не завершится (ваш) оскорбительный процесс.

Примечание: Этот API не изменяет предпочтения пользователя для композиции - только то, что ваше приложение несовместимо.

0 голосов
/ 24 мая 2010

Если вам действительно необходимо, вы можете добавить запись в реестр в «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers» с помощью инструкции WriteRegStr (я не думаю, что есть официальный API для этого, так как пользователь должен управлять этими параметрами, а не разработчик (в конце концов, вы можете просто починить сломанное приложение). Существует недокументированная функция SHGetAppCompatFlags для чтения флагов, но нет " сеттер "АФАИК" )

...