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

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

    Начать бесплатно

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

    Начать бесплатно

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

      Введение

      Данный инструмент помогает корректировать яркость дисплея для Вашего 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

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

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

      Стартовый
      • Все видеокурсы на 3 месяца
      • Тестирование по 10 курсам
      • Проверка 5 домашних заданий
      • Консультация с тренером 30 мин
      Базовый
      • Все видеокурсы на 6 месяцев
      • Тестирование по 16 курсам
      • Проверка 10 домашних заданий
      • Консультация с тренером 60 мин
      Премиум
      • Все видеокурсы на 1 год
      • Тестирование по 24 курсам
      • Проверка 20 домашних заданий
      • Консультация с тренером 120 мин
      Notification success
      Мы используем cookie-файлы, чтобы сделать взаимодействие с нашими веб-сайтами и услугами простым и значимым.