Как изменить цветовую схему Windows с помощью C #? - PullRequest
1 голос
/ 15 января 2011

Как программно изменить цветовую схему с помощью c #?Я хочу изменить цветовую схему на Windows Vista Basic или Windows 7 Basic.Как я могу это сделать?Спасибо, Никиль.

Ответы [ 2 ]

1 голос
/ 10 января 2013

Это то, что сработало лучше для меня.С моей очень интенсивной графикой программы Windows Vista и 7 в конце концов вернули систему в Windows Basic Colours.Но если я свернул или развернул окно MDI до того, как это произошло, все полностью зависло.Мне пришлось удерживать кнопку питания в течение 5 секунд, чтобы выключить ее, а затем перезагрузить.Вот что я обнаружил, чтобы перейти к Windows Basic Colours в начале выполнения программы:

using System.Runtime.InteropServices; 

    //1-9-2013: so we can DISABLE COMPOSITING -- forcing Windows "Aero Glass" to revert to "Aero Basic"
    [DllImport("dwmapi.dll", PreserveSig = false)]
    public static extern void DwmEnableComposition(bool bEnable);

            DwmEnableComposition(false);    //DISABLE COMPOSITING -- forces Windows "Aero Glass" to revert to "Aero Basic"

Изменение в Aero Basic относится к самой Windows, затрагивая все работающие программы.Система возвращается к «Aero Glass» при выходе из этого приложения.Могут быть и другие побочные эффекты, но пока все работает хорошо для меня.

PS Похоже, это устарело в Windows 8 и ничего не делает, кроме как возвращает True.Мое приложение представляет собой программу мониторинга в режиме реального времени, на которой больше ничего нет, поэтому мне удобно использовать Windows Basic Colors.Так что это обходной путь, пока я не смогу найти, что в моем приложении жует так много машинных циклов с Aero Glass.

1 голос
/ 15 января 2011

Вы можете изменить тему системы, используя метод SetSystemVisualStyle.

Ссылка на pInvoke SetSystemVisualStyle .

C # Пример использования:

// This will set your Visual Style to Luna
SetSystemVisualStyle(@"C:\WINDOWS\resources\Themes\Luna\Luna.msstyles", "Metallic", "NormalSize", 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...