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

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