Введение

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