Настройки пробуждения экрана в параметрах питания или в реестре для ОС Windows? - PullRequest
0 голосов
/ 25 февраля 2019

Можно ли как-нибудь разбудить экран после указанного времени?я нашел одну опцию, которая может разрешить включение или отключение или только важные времена пробуждения.Есть ли у нас какой-либо способ указать время пробуждения экрана? enter image description here ons

Любая помощь Пожалуйста.если любой шанс с помощью PowerShell или любого другого сценария также подойдет.

{{powercfg.exe -change -monitor-timeout-dc 1
 powercfg.exe -change -monitor-timeout-ac 1

Вот так я хотел бы внести любые изменения с помощью PowerShell.

1 Ответ

0 голосов
/ 25 февраля 2019

Скрипт Powershell для включения монитора в определенное время.Протестировано с Windows 10

$Signature = @"
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

[DllImport("user32.dll")]
public static extern void mouse_event(Int32 dwFlags, Int32 dx, Int32 dy, Int32 dwData, UIntPtr dwExtraInfo);
"@

Try {
$ShowWindowAsync = Add-Type -MemberDefinition $Signature -Name "Win32ShowWindowAsync" -Namespace Win32Functions -PassThru -ErrorAction Ignore }
Catch { }

$MONITOR_ON = -1;
$MONITOR_OFF = 2;
$MONITOR_STANBY = 1;

[datetime]$WakeUpTime = "02-26-2019 09:40:00 PM" # Set your Wakeup time MM/dd/yyyy hh:mm:ss"

[System.Int64]$MOUSEEVENTF_MOVE = 0x0001;

[System.IntPtr]$HWND_BROADCAST = New-Object System.IntPtr(0xffff)
[System.UInt32]$WM_SYSCOMMAND = 0x0112
[System.IntPtr]$SC_MONITORPOWER = New-Object System.IntPtr(0xF170)

$ShowWindowAsync::SendMessage($HWND_BROADCAST, $WM_SYSCOMMAND, $SC_MONITORPOWER, [System.IntPtr]$MONITOR_OFF);

$Wait = $true

While($Wait)
{
    If((Get-Date) -ge $WakeUpTime)
    {
        $ShowWindowAsync::mouse_event($MOUSEEVENTF_MOVE, 0, 1, 0, [System.UIntPtr]::Zero);
        $wait = $false
    }
}
...