Как отключить монитор с помощью точек входа в DLL окон?
Насколько вы знаете, мы можем вызывать точки входа Windows7 DLL через rundll32 <dll-file>,<Entry point>
в командной строке. Например, я блокирую свой экран, используя следующую команду в командной строке Windows:
rundll32.exe user32.dll,LockWorkStation
Теперь я хочу знать, есть ли способ выключить мой монитор таким образом? т.е. есть ли точка входа, которую я могу вызвать в CMD и выключить монитор?
2 ответа
В любом случае, я не вижу возможности добиться этого в win7 или более поздней версии с помощью rundll32, но вы можете использовать внешнее приложение под названием nircmd.
Чтобы выключить монитор:
nircmd.exe monitor off
Чтобы включить монитор:
nircmd.exe monitor on
Вы можете поместить это в файл летучей мыши и сделать ярлык.
Вы также можете использовать инструмент под названием WIZMO и использовать его в командной строке:
wizmo.exe monoff
В командной строке / или в виде файла.bat/ .cmd / .com:
powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)
Как прямая команда powershell, вы можете удалить директиву escapes и powershell (и сохранить ее как файл ps1).
(Add-Type '[DllImport("user32.dll")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)
Следует отметить, что это, кажется, оставляет процесс вечно запущенным, что вам нужно либо убить его позже, либо что-то еще. Сейчас я работаю над этим вопросом, вот как я тут наткнулся. Если я исправлю это, я оставлю ответ.