Насколько вы знаете, мы можем вызывать точки входа в Windows7 DLL через rundll32 <dll-file>,<Entry point> в командной строке. Например, я блокирую свой экран, используя следующую команду в командной строке Windows :

rundll32.exe user32.dll,LockWorkStation

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

2 ответа2

2

В любом случае, я не вижу возможности добиться этого в win7 или более поздней версии с помощью rundll32, но вы можете использовать внешнее приложение под названием nircmd.

Чтобы выключить монитор:

nircmd.exe monitor off

Чтобы включить монитор:

nircmd.exe monitor on

Вы можете поместить это в файл летучей мыши и сделать ярлык.
Вы также можете использовать инструмент под названием WIZMO и использовать его в командной строке:

wizmo.exe monoff
1

В командной строке / или в виде файла .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)

Следует отметить, что это, кажется, оставляет процесс навсегда запущенным, что вам нужно либо убить его позже, либо что-то еще. Сейчас я работаю над этим вопросом, вот как я тут наткнулся. Если я исправлю это, я оставлю ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .