Como executar um script em suspensão, hibernação, retomada e desligamento

18

Eu mantenho muitos dos meus documentos de aula hospedados no dropbox, bem como meu site pessoal para armazenamento remoto. Isso ajuda muito, pois eu alterno entre um iPad, laptop e desktop, para que não haja preocupações com meus documentos fora de contato.

O problema é que esta solução depende de eu me lembrar de executar o programa de sincronização (synctoy) para win7, então eu gostaria de uma solução para fazer isso automaticamente. Encontrei alguma ajuda de script que deve funcionar na inicialização, mas como posso executar o script ao entrar no modo de suspensão e hibernação, retomando de ambos e executando antes do desligamento.

Jason
fonte
+1 boa pergunta. Estou ciente de que existem scripts específicos que você pode adicionar no Ubuntu Linux para isso (embora eu queira saber especificamente qual deles). Enfim, eu também já tive esse problema usando o Windows.
James T Snell

Respostas:

11

Tente isso quando o computador retornar do modo de hibernação ou suspensão

Begin the Task: On an event
Setting Basic
Log:  System
Source: Power-Troubleshooter
Event ID: 1
The system has resumed from sleep.

Quando você coloca o computador no modo de hibernação ou suspensão

Begin the Task: On an event
Setting Basic
Log:  System
Source: Kernel-Power
Event ID: 42
The system is entering sleep.
Gadget
fonte
Não funciona quando eu hibernar. Consigo ver o evento sendo registrado no Visualizador de Eventos, mas o script que especifiquei no Agendador de Tarefas só será executado depois que o sistema retornar do Hibernate. De acordo com o histórico do Agendador de tarefas, a tarefa é acionada, mas não executada.
Andreas Haferburg
8

Você pode criar uma tarefa que use qualquer uma das seguintes opções como gatilhos para o Agendador de tarefas no Windows 7:

  • Na programação
  • No Logon
  • Na inicialização
  • On Idle
  • Em um evento
  • Na conexão com a sessão do usuário
  • Ao desconectar da Sessão do Usuário
  • No bloqueio da estação de trabalho
  • No desbloqueio da estação de trabalho

Há muito o que trabalhar lá, eu estaria olhando para o Idle, no Workstation Lock e On Workstation Unlock. Essa é provavelmente a sua melhor aposta.

Espero que ajude.

chunkyb2002
fonte
Bingo. Eu tenho uma tarefa agendada que é executada SyncToyCmd.exe -Rdiariamente, portanto deve funcionar bem com os outros gatilhos também.
Andrew Coleson
1

Quando eu queria configurá-lo, queria uma abordagem de latência muito baixa para que eu pudesse ter uma tela inicial. Para o planejador de tarefas, você deseja definir o gatilho como "em um evento", em seguida, defina como personalizado em vez de básico e edite a consulta manualmente na guia XML do gatilho de evento.

Eu tentei este script para XML:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=4 or Level=0) and (EventID=42)]]</Select>
  </Query>
</QueryList>

Se você precisar que o aplicativo seja iniciado rapidamente, esta é a melhor maneira de fazê-lo.

phly95
fonte
0

Tendo tentado alguns dos métodos prescritos aqui, nunca consegui que um script fosse executado no modo de suspensão. Os recursos internos do Agendador de Tarefas do Windows simplesmente não o corrigiram.

Encontrei um pequeno utilitário de código aberto chamado "Power Triggers" ou "Windows 7 Suspend / Resume Control" . Apesar de não ser bem polido ou mantido atualmente, achei esta ferramenta para trabalhar no Windows 10 sem problemas. No entanto, para executar um script facilmente ao suspender ou continuar, é necessário usar a versão 1.01, e não a versão mais recente .

DCKing
fonte
0

O que você pode fazer é criar um arquivo em lotes para fazer tudo o que você precisa antes de desligar ou hibernar a máquina.

Lembre-se de que você deve executar os aplicativos com "Iniciar / aguardar xxx.exe" para que o arquivo em lotes aguarde a conclusão do comando e saia e não atinja a parte de desligamento antes que outras tarefas sejam concluídas.

O último comando nesse arquivo deve ser "shutdown xxx yyy", em que xxx e yyy são os parâmetros para o comando shutdown. Em seguida, você pode simplesmente executar esse arquivo em lotes em vez de usar qualquer outro comando / aplicativo de desligamento.

user38660
fonte
0

Existe um script AutoHotkey que tenta resolver isso aqui

Stenemo
fonte