Выключение монитора из командной строки в Windows

Материал из sysadm
Перейти к навигации Перейти к поиску

Вариант 1

%systemroot%\system32\scrnsave.scr /s

Вариант 2

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
PS> (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)

Вариант 3 (тоже что 2, но в виде функции, выполняется в powershell)

# или так
function Set-DisplayOff
{
$code = @"
using System;
using System.Runtime.InteropServices;
public class API
{
[DllImport("user32.dll")]
public static extern
int SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
}
"@
$t = Add-Type -TypeDefinition $code -PassThru
$t::SendMessage(0xffff, 0x0112, 0xf170, 2)
}
Set-DisplayOff

Вариант 4 (выставляем минимальный таймаут 1 минута на выключение экрана)

powercfg /change monitor-timeout-ac 1

Проверка запросов блокирующих отключения (https://superuser.com/questions/1181186/power-request-types-whats-the-difference-between-display-system-awaymode-p)

powercfg /requests