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

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

    Подписка

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

    Подписка

      Меняем яркость экрана в 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 мин
      48.00 $
      59.99 $
      Оформить подписку
      Акция
      Базовый
      • Все видеокурсы на 6 месяцев
      • Тестирование по 16 курсам
      • Проверка 10 домашних заданий
      • Консультация с тренером 60 мин
      54.00 $
      89.99 $
      Оформить подписку
      Акция
      Премиум
      • Все видеокурсы на 1 год
      • Тестирование по 24 курсам
      • Проверка 20 домашних заданий
      • Консультация с тренером 120 мин
      85.00 $
      169.99 $
      Оформить подписку
      Акция
      Notification success
      Мы используем cookie-файлы, чтобы сделать взаимодействие с нашими веб-сайтами и услугами простым и значимым.