Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Получить состояние монитора (http://forum.oszone.net/showthread.php?t=329657)

ganzales 09-09-2017 00:42 2763726

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

greg zakharov 10-09-2017 21:19 2763980

Как подсказывает капитан очевидность, определить состояние монитора, если оный отключается через десять минут бездействия, можно по отсутствию на нем какого-либо изображения, - никакой командной строки не нужно. Если же речь все таки о неком компе в сети, здесь прямо-таки россыпь 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 10-09-2017 23:22 2763992

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

ganzales 11-09-2017 00:42 2764001

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

greg zakharov 11-09-2017 10:52 2764029

Цитата:

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

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

Iska 11-09-2017 11:15 2764031

Цитата:

Цитата greg zakharov
Что здесь прикажете делать? »

Не страдать.

mwz 12-09-2017 17:06 2764310

Цитата:

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

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

ganzales 13-09-2017 18:39 2764518

mwz, это как?

Казбек 13-09-2017 18:50 2764523

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.


Время: 22:51.

Время: 22:51.
© OSzone.net 2001-