Параметры командной строки BatteryMode

Внимание: Battery Mode должен быть запущен перед выполнением нижеперечисленных команд
BatteryMode*.exe [-Help] [-?] [/?] [-Next] [-Economy] [-Typical] [-Performance] [-GetBrightness] [-SetBrightness "<UniqueString>" [level] <Value>]

  • -Help, -?, /? - Получение справки
  • -Next - Циклическое переключение схем электропитания, включая пользовательские
  • -Economy - Переключение на схему «Экономия энергии», если она доступна
  • -Typical - Переключение на схему «Сбалансированный», если она доступна
  • -Performance - Переключение на схему «Высокая производительность», если она доступна
  • -GetBrightness - Получение списка мониторов, управление яркостью которых включено в Battery Mode.
    Ответное сообщение имеет формат:
    • <N>. <Name>: "<UniqueString>"
      • Levels: <Level>:<Brightness>, ..., <Level>:<Brightness>
      • Current level: <CurrentLevel>
    • <N> - Номер монитора. Может быть не отсортированым
    • <Name> - Название монитора. Отображается в контекстном меню «Управлять яркостью мониторов»
    • <UniqueString> - Уникальная строка монитора. Обязатено заключается в двойные кавычки.
      Пример внешнего монитора: "Dell U2312HM (Digital - DVI); T=1; LI=0; PI=0".
      Пример внутреннего монитора: "DISPLAY\LGD0290\4&205f4e7&0&UID67568640_0; T=0"
    • <Level>:<Brightness> - Соответствие уровня яркости и его значения.
      Пример: Levels: 0:0, 1:10, 2:20, 3:30, 4:40, 5:50, 6:60, 7:70, 8:80, 9:90, 10:100.
      Рекомендуется использовать для настройки именно уровни, т.к. мониторы не поддерживают значения яркости между уровнемями.
      Значения уровней могут быть распределены не равномерно, а, например, логорифмически
    • <CurrentLevel> - Текущий уровень яркости
  • -SetBrightness - Установка яркости монитра, управление которым включено в Battery Mode.
    Команда имеет формат:
    • -SetBrightness "<UniqueString>" [level] <Value>
    • "<UniqueString>" - Уникальная строка монитора. Обязатено заключается в двойные кавычки.
      Должна быть получена командой -GetBrightness
    • [level] - Способ регулировки яркости. Если этот параметр присутствует, то значение этой команды рассматривается как номер уровня яркости, иначе как значение.
      Значения яркости округляются до ближайщего уровня в меньшую сторону
    • <Value> - Значение уровня яркости или яркости

    Пример: измененяем яркость внутреннего монитора на уровень 3
    BatteryMode64.exe -SetBrightness "DISPLAY\LGD0290\4&205f4e7&0&UID67568640_0; T=0" level 3

    Пример: измененяем яркость внешнего монитора на 30 процентов
    BatteryMode64.exe -SetBrightness "Dell U2312HM (Digital - DVI); T=1; LI=0; PI=0" 30

Управление Battery Mode через внешний Pipe канал (Возможны изменения!)

Адрес канала: \\.\pipe\BatteryModeCmdPipe
Тип доступа: PIPE_ACCESS_DUPLEX
Тип канала: PIPE_TYPE_MESSAGE

Односторонний обмен: CreateFile -> WriteFile -> CloseHandle
Двусторонний обмен: CreateFile -> SetNamedPipeHandleState -> TransactNamedPipe -> ReadFile -> CloseHandle

Доступные типы команд:
enum {

  • actUnknown = 0
  • actChangeScheme = 1
  • actSetBrightness = 2
  • actGetBrightnessMonitors = 3
  • actBrightnessMonitors = 4
} CommandType

Общий формат команды: <CommandType>#<CommandBody>
Разделитель заголовка: "#"
  • actChangeScheme - Переключение схемы электропитания.
    Формат команды: actChangeScheme#Next|Economy|Typical|Performance|Custom[@:<GUID>]
    Разделитель значений: "@:"

    Пример: 1#Custom@:{1D088A88-A9FE-462D-AB91-1FA87949C668}

  • actSetBrightness - Изменение яркости монитора.
    Формат команды: actSetBrightness#<UniqueString>@:Level|Brightness@:<Value>
    Разделитель значений: "@:"

    Пример: 2#Dell U2312HM (Digital - DVI); T=1; LI=0; PI=0@:Level@:3

  • actGetBrightnessMonitors - Запрос на формирование списка мониторов, управление яркостью которых включено в Battery Mode
    Формат команды: actGetBrightnessMonitors#GetBrightnessMonitors

    Пример: 3#GetBrightnessMonitors

  • actBrightnessMonitors - Ответная команда на actGetBrightnessMonitors. Содержит список с описанием мониторов.
    Формат команды: actBrightnessMonitors#<UniqueString>@:<Description>@:<Level>,...,<Level>@:<CurrentLevel>@;<UniqueString>...
    Разделитель мониторов: "@;"
    Разделитель значений: "@:"
    Разделитель уровней: ","

    Пример: 4#Dell U2312HM (Digital - DVI); T=1; LI=0; PI=0@:Dell U2312HM (Digital - DVI)@:
    0,1,2,3,<...>,98,99,100@:30@;
    DISPLAY\LGD0290\4&205f4e7&0&UID67568640_0; T=0@:Generic PnP Monitor@:
    0,10,20,30,40,50,60,70,80,90,100@:3

11837 активных пользователей на этой неделе