Змінюємо яскравість екрану в C# додатках - Блог ITVDN
ITVDN: курси програмування
Відеокурси з
програмування

Замовити дзвінок

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

Підписка

Замовити дзвінок

+38 099 757 27 82

Змінюємо яскравість екрану в 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 $
Придбати
Преміум Plus
  • Усі відеокурси на 12 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
  • Завантаження відео уроків
199.99 $
Придбати
Базовий
  • Усі відеокурси на 6 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.99 $
Придбати
Notification success