Меняем яркость экрана в C# приложениях - Блог ITVDN
ITVDN: курсы программирования
Видеокурсы по
программированию
РУС
  • РУС
  • УКР

Заказать звонок

    Выбери свою IT специальность

    Подписка

    Заказать звонок

    +38 099 757 27 82
    РУС
    • РУС
    • УКР
    Arrow
    7 апреля состоится вебинар «Как стать Python-разработчиком в 2025 году?» Подробности и регистрация
    Arrow

    Меняем яркость экрана в C# приложениях

    advertisement advertisement

    Введение

    Данный инструмент помогает корректировать яркость дисплея для Вашего C# приложения. Он поддерживается всеми мониторами и видеокартами.

    Выбираем основу

    Мы будем использовать функцию SetDeviceGammaRamp, она подходит к различным мониторам. Вы могли слышать про WMIBrightness, но, к сожалению, не все видеокарты поддерживают эту функцию.


    brightness in C #

     

    Пишем код

    В данном методе требуется использования двух форм. Одна будет содержать элементы управления и список функций, а другая будет открываться “fullscreen” и будет полностью прозрачной.

    this.TopMost = true;

    this.Opacity = 0.5D;

    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

     

    Для прозрачной формы используем функцию WndProc, для того чтобы все WM_NCHITTEST сообщения проходили через нее.

    protected override void WndProc(ref Message m)

    {

        if (m.Msg == 0x0084) // WM_NCHITTEST

          m.Result = (IntPtr)(-1); // HTTRANSPARENT

        else

            base.WndProc(ref m);

    }

    В форму, содержащую в себе элементы управления и функции, добавим функцию регулировки и обновления яркости. Она выполняется при загрузке формы или при изменении позиции слайдера.

    void UpdateBrightness()

    {

        float f = trackBarBrightness.Value * 0.01f;

        if (f < 0.5f)

        {

            program.screenForm.Opacity = 1 - 2 * f;

            program.screenForm.BackColor = Color.Black;

        }

        else

        {

            program.screenForm.Opacity = 2 * (f - 0.5f);

            program.screenForm.BackColor = Color.White;

        }

    }

    Когда форма закрыта, основная программа должна быть закрыта с помощью потокового выхода, иначе яркость будет оставаться, и Вы не сможете закрыть приложение.

    private void ControlForm_FormClosed_1(object sender, FormClosedEventArgs e)

    {

        program.ExitThread();

    }

     

    Теперь в программе мы получили функциональную модель изменения яркости экрана с помощью позиции слайдера.

    Если Вы хотите попробовать сделать вышеописанное у себя, то скачайте Visual Studio 2013.

    Источник: http://www.codeproject.com/Tips/855454/How-To-Change-Screen-Brightness-in-Csharp

    КОММЕНТАРИИ И ОБСУЖДЕНИЯ
    advertisement advertisement

    Покупай подпискус доступом ко всем курсам и сервисам

    Библиотека современных IT знаний в удобном формате

    Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

    Стартовый
    • Все видеокурсы на 3 месяца
    • Тестирование по 10 курсам
    • Проверка 5 домашних заданий
    • Консультация с тренером 30 мин
    59.99 $
    Оформить подписку
    Базовый
    • Все видеокурсы на 6 месяцев
    • Тестирование по 16 курсам
    • Проверка 10 домашних заданий
    • Консультация с тренером 60 мин
    89.99 $
    Оформить подписку
    Премиум
    • Все видеокурсы на 1 год
    • Тестирование по 24 курсам
    • Проверка 20 домашних заданий
    • Консультация с тренером 120 мин
    169.99 $
    Оформить подписку
    Notification success