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

Изучай программирование за 9.99 USD в месяц

Подписка
ITVDN logo
Видеокурсы по
программированию

Изучай программирование за 9.99 USD в месяц

Подписка

Введение

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

КОММЕНТАРИИ И ОБСУЖДЕНИЯ
СТАТЬИ ПО СХОЖЕЙ ТЕМАТИКЕ
ВИДЕО КУРСЫ ПО СХОЖЕЙ ТЕМАТИКЕ

Стань профессионалом, используя все возможности обучения на ITVDN

Стартовый
подписка

Все видео курсы на 3 месяца за 49.99 $

0
Базовый
подписка

Все видео курсы на 6 месяцев за 89.99 $

1
Премиум
подписка

Все видео курсы на 12 месяцев за 169.99 $

2
Notification success