Executar um script quando o Windows sair do estado de suspensão / hibernação?

10

Existe uma maneira de o Windows (XP, Vista e 7) executar um script quando uma máquina retorna do modo de hibernação / suspensão? Eu ficaria bem se o script for executado depois que o usuário desbloquear uma sessão bloqueada após o reinício da máquina.

Eu tenho um serviço que precisa ser kickado quando uma máquina retornar para que seja executado corretamente no currículo.

    
por Ian C. 27.04.2011 / 17:10

4 respostas

12

No windows 7, você pode fazer isso com uma tarefa agendada. Configure um script em lote para executar as ações desejadas e, em seguida, crie uma tarefa com um dos seguintes acionadores:

  • On workstation unlock - Ignora o primeiro login, mas inicia após o desbloqueio.
  • Na conexão com a sessão do usuário - Todo logon, pode ser uma conexão local ou remota.
  • Em um evento - No log do sistema, a fonte "Power-Troubleshooter" (Solucionador de problemas de energia) registrará um código de evento 1 quando você acordar de um estado de suspensão.

Eu não os testei para garantir que funcionem como esperado, mas usei "On Workstation lock" com grande quantidade de sucesso. Pelo que me lembro de tarefas agendadas no XP, só tem "Quando eu faço logon".

ganhe 7 documentos de origem

doc de origem do win XP

Espero que isso ajude

    
por 27.04.2011 / 19:01
2

Usando Win32_PowerManagementEvent ? Acabei de pesquisar no Google e encontrei o script a seguir (sem garantia;).

Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")

Do
  Set objLatestEvent = colMonitoredEvents.NextEvent

  Select Case objLatestEvent.EventType

    Case 4
      oShell.Run "Calc.exe", 1, False
      MsgBox "Entering suspend, Calc started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 7
      oShell.Run "Notepad.exe", 1, False
      MsgBox "Resuming from suspend, notepad started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 11
      MsgBox "OEM Event happened, OEMEventCode = " _
      & strLatestEvent.OEMEventCode

    Case 18
      MsgBox "Resume Automatic happened"

  End Select
Loop
    
por 27.04.2011 / 17:57
1

Adicione uma tarefa agendada com o acionador: no desbloqueio da estação de trabalho. Funciona, eu corro depois de acordar do sono. Na minha caixa do Windows 2008R2, o serviço de áudio precisa ser reiniciado, caso contrário, às vezes, ele usa 100% de 1 cpu.

    
por 17.12.2014 / 01:43
-1

Eu realmente escrevi esse roteiro há um tempo atrás e blogged sobre isso, mas eu acredito nisso foi um pouco depois da sua pergunta aqui. Da próxima vez que eu escrever algo assim, eu vou pesquisar o Stack Overflow imediatamente, porque quando as pessoas procuram por essas coisas, elas tendem a ir a este site hoje em dia.

    
por 03.12.2012 / 16:32