.png)
Criei 2 tarefas para dormir e acordar seguindo este guia:https://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/
Se eu executar a tarefa de suspensão de forma independente, o PC entrará em suspensão e acordará pelo evento de movimento do mouse.
Se eu agendar a tarefa de ativação e definir o botão do teclado para hibernar no PC, ele será ativado por tarefa agendada.
Portanto, as tarefas funcionam muito bem de forma independente, mas não em uma cadeia de eventos de tarefas.
O que eu tentei:
- desativar a hibernação por
powercfg -h off
- despertadores permitidos (definidos como Ativados) em Configurações -> Opções de energia
- habilitou tudo no BIOS relacionado a temporizadores de eventos e despertares
- usou pausas entre tarefas de dormir e acordar por mais de 5 minutos
- xamã dança com pandeiro
Capturas de tela adicionais:
Software para download não é uma opção. O mesmo comportamento no PC e no laptop. A luta continua por 2 dias até agora...
Responder1
$script = '$signature = @"
[DllImport("powrprof.dll")]
public static extern bool SetSuspendState(bool Hibernate,bool ForceCritical,bool DisableWakeEvent);
"@
$func = Add-Type -memberDefinition $signature -namespace "Win32Functions" -name "SetSuspendStateFunction" -passThru
$func::SetSuspendState($false,$true,$false)'
$bytes = [System.Text.Encoding]::Unicode.GetBytes($script)
$encodedCommand = [Convert]::ToBase64String($bytes)
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-encodedCommand $encodedCommand"
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:43
Register-ScheduledTask -TaskName "Sleep" -Action $action -Trigger $trigger -Force
$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo hello"
$settings = New-ScheduledTaskSettingsSet -WakeToRun
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 16:44
Register-ScheduledTask -TaskName "Wake" -Action $action -Settings $settings -Trigger $trigger -Force
Funciona como um encanto :)
Também NÃO USE RUNDLL32 porque
Rundll32 só pode chamar funções de uma DLL explicitamente escrita para ser chamada por Rundll32.
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32#remarks