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

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

Начать бесплатно
ITVDN logo
Видеокурсы по
программированию

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

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

Введение

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