Змінюємо яскравість екрану в 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

      Пакети підписки з доступом до всіх курсів та сервісів

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