CMD/BAT - Получить состояние монитора

Ответить
Аватара пользователя
ganzales

CMD/BAT - Получить состояние монитора

Сообщение ganzales »

Привет, имеется Windows 10 и монитор, который отключается через 10 минут бездействия. Вопрос: как узнать его состояние через CMD?
Аватара пользователя
ganzales

Re: CMD/BAT - Получить состояние монитора

Сообщение ganzales »

Как подсказывает капитан очевидность, определить состояние монитора, если оный отключается через десять минут бездействия, можно по отсутствию на нем какого-либо изображения, - никакой командной строки не нужно. Если же речь все таки о неком компе в сети, здесь прямо-таки россыпь WMI классов, выводящих различного рода информацию. Например, Win32_DesktopMonitor, но соль в том, что его свойство Availability равное 8 вовсе не означает, что монитор действительно находится offline, вполне возможно что монитор просто переведен в режим пониженного энергопотребления как это можно делать на лэптопах.



Код:

Код: Выделить всё

for /f "tokens=2 delims==" %%i in (
  'wmic /namespace:\\root\cimv2 path Win32_DesktopMonitor get Availability /value'
) do set "ms=%%i"

Другой класс - WmiMonitorID.



Код:

Код: Выделить всё

for /f "tokens=2 delims==" %%i in (
  'wmic /namespace:\\root\wmi path WmiMonitorID get Active /value'
) do set "ms=%%i"

И так далее.
Аватара пользователя
Iska

Re: CMD/BAT - Получить состояние монитора

Сообщение Iska »

Я бы лучше задал на этой машине запуск скринсейвера, и проверял его наличие в процессах.
Аватара пользователя
Iska

Re: CMD/BAT - Получить состояние монитора

Сообщение Iska »

Я такое временное решение придумал: монитор отключается вместе с блокировкой учетки, в планировщике делаем два задания, один на блокировку, другой на разблокировку - профит!
Аватара пользователя
ganzales

Re: CMD/BAT - Получить состояние монитора

Сообщение ganzales »

Цитата Iska:



Я бы лучше задал на этой машине запуск скринсейвера, и проверял его наличие в процессах.



Ничто не мешает в системе создать псевдоскринсейвер, то есть в процессах есть нечто одноименное и не вызывающее подозрений у админа, а между тем по факту монитор будет использоваться. Что здесь прикажете делать? Скажете, дескать, такого быть не может или что по свойствам процесса можно установить его легитимность?! - а вот ничего подобного. Если говорить об однозначном значении состояния монитора, лучше использовать машинные команды в PowerShell, а в идеале и вовсе асм.
Аватара пользователя
Iska

Re: CMD/BAT - Получить состояние монитора

Сообщение Iska »

Цитата greg zakharov:



Что здесь прикажете делать?
CMD/BAT - Получить состояние монитора




Не страдать.
Аватара пользователя
mwz

Re: CMD/BAT - Получить состояние монитора

Сообщение mwz »

Цитата ganzales:



отключается через 10 минут бездействия. Вопрос: как узнать его состояние через CMD?
CMD/BAT - Получить состояние монитора




Узнать, сколько времени не используется компьютер. Не?
Аватара пользователя
Казбек

Re: CMD/BAT - Получить состояние монитора

Сообщение Казбек »

Use PowerShell to Discover Multi-Monitor Information



Цитата:



There is a cool WMI class on my laptop running Windows 8 (I’m not sure if it exists on Windows 7 devices). It is in the Root\WMI namespace. The class is WmiMonitorBasicDisplayParams, and it tells me if a display is active.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»