none
Изменение уровня подсветки (Яркость экрана) RRS feed

  • Вопрос

  • Здраствуйте!

    Не могли бы Вы мне сказать, где на уровне системы изменяется Яркость экрана?

    Стандартными средствами можно изменить в "Панель управления>Оборудование и звук>Электропитание" и снизу ползунок Яркость экрана.

    Хотелось бы написать скрипт, который в течение дня регулировал подсветку.

    В интернете "много таких" программ, но там по сути не меняет уровень подсветки, а меняется яркость изображения дисплея, происходит простое наложение черного. Причем подсветка остается на том же уровне. В общем в глобальной сети, а так же и своими способами я не нашёл нативный способ изменения подсветки.

    Написал скрипт, который запускает Центр мобильности Windows (mblctr.exe) и двигает ползунок. Но в этом случае используются клавиши "→", "Tab", "Esc", что может помешать нормальной работе (закрытие программ, потеря фокуса окна, помеха печати), хотя макрос проходит меньше чем за секунду.

    В общем, я ищу нативный  способ, которым можно изменять уровень подсветки системно (реестр, правка фалов, выполнение команд), чтобы регулировать подсветку в течения дня для сбережения глаз.

    Заранее спасибо!

    • Перемещено Vinokurov YuriyModerator 27 апреля 2010 г. 13:26 Проблема больше для форума разработчиков (От:Windows 7)
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:46 MSDN Forums consolidation (От:Разработка Windows-приложений)
    21 апреля 2010 г. 17:39

Ответы

Все ответы

  • Это скорее всего можно сделать через функции управления энергосбережением.

     


    This posting is provided "AS IS" with no warranties, and confers no rights.
    21 апреля 2010 г. 18:41
    Модератор
  • Спасибо за ответ.

    Самое подходящее по Вашей ссылке я нашёл DISPLAY_BRIGHTNESS Structure. Только там мне не особо понятно как решить мою задачу.

    Я пока в программировании плохо разбираюсь, учу C#. Там есть код для C++:

    typedef struct _DISPLAY_BRIGHTNESS {
     UCHAR ucDisplayPolicy;
     UCHAR ucACBrightness;
     UCHAR ucDCBrightness;
    }DISPLAY_BRIGHTNESS, *PDISPLAY_BRIGHTNESS;

    И ниже небольшие пояснения. Я не пойму куда значения вписывать. Нпр, изменит ли (?) яркость на 90% код:

    typedef struct _DISPLAY_BRIGHTNESS {
     UCHAR ucDisplayPolicy 0x00000003;
     UCHAR ucACBrightness 90;
     UCHAR ucDCBrightness 90;
    }DISPLAY_BRIGHTNESS, *PDISPLAY_BRIGHTNESS;

    И в примечаниях написано нужно иметь Ntddvdeo.h. Чтобы его получить нужно скачать 620 МБ? А пойдет ли со стороннего ресурса?

    В общем хотелось бы пример кода, работающего в фоне, изменения подсветки дисплея написанного на C#, а так же Ntddvdeo.h для C#.

    Заранее большое спасибо!

    22 апреля 2010 г. 8:54
    • Предложено в качестве ответа I.Vorontsov 30 апреля 2010 г. 8:51
    • Помечено в качестве ответа I.Vorontsov 4 мая 2010 г. 5:39
    30 апреля 2010 г. 8:50