Показать полную графическую версию : Получить состояние монитора
ganzales
09-09-2017, 00:42
Привет, имеется Windows 10 и монитор, который отключается через 10 минут бездействия. Вопрос: как узнать его состояние через CMD?
greg zakharov
10-09-2017, 21:19
Как подсказывает капитан очевидность, определить состояние монитора, если оный отключается через десять минут бездействия, можно по отсутствию на нем какого-либо изображения, - никакой командной строки не нужно. Если же речь все таки о неком компе в сети, здесь прямо-таки россыпь 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"
И так далее.
Я бы лучше задал на этой машине запуск скринсейвера, и проверял его наличие в процессах.
ganzales
11-09-2017, 00:42
Я такое временное решение придумал: монитор отключается вместе с блокировкой учетки, в планировщике делаем два задания, один на блокировку, другой на разблокировку - профит!
greg zakharov
11-09-2017, 10:52
Я бы лучше задал на этой машине запуск скринсейвера, и проверял его наличие в процессах.Ничто не мешает в системе создать псевдоскринсейвер, то есть в процессах есть нечто одноименное и не вызывающее подозрений у админа, а между тем по факту монитор будет использоваться. Что здесь прикажете делать? Скажете, дескать, такого быть не может или что по свойствам процесса можно установить его легитимность?! - а вот ничего подобного. Если говорить об однозначном значении состояния монитора, лучше использовать машинные команды в PowerShell, а в идеале и вовсе асм.
Что здесь прикажете делать? »
Не страдать.
отключается через 10 минут бездействия. Вопрос: как узнать его состояние через CMD? »
Узнать, сколько времени не используется компьютер. Не?
ganzales
13-09-2017, 18:39
mwz, это как?
Use PowerShell to Discover Multi-Monitor Information (https://blogs.technet.microsoft.com/heyscriptingguy/2013/10/03/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.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.