Exécuter un script lorsque Windows reprend de l'état de suspension / hibernation?

Existe-t-il un moyen d'avoir Windows (XP, Vista et 7) exécuté un script lorsqu'une machine revient du mode veille prolongée / suspension? Ce serait bien avec moi si le script s'exécute après que l'utilisateur déverrouille une session verrouillée après la reprise de leur machine.

J'ai un service qui doit être lancé lorsque je reprend une machine pour l'exécuter correctement sur le CV.

Dans Windows 7, vous pouvez le faire avec une tâche planifiée. Configurez un script de lot pour effectuer les actions que vous souhaitez, puis créez une tâche avec l'un des déclencheurs suivants:

  • Sur le déblocage du poste de travail – Ignore la première connexion, mais démarre après le déverrouillage.
  • Lors de la connexion à la session utilisateur – Chaque connexion, peut être une connexion locale ou à distance.
  • Lors d'un événement – Dans le journal du système, la source "Power-Troubleshooter" enregistrera un code d'événement de 1 lorsque vous vous réveillez d'un état de veille.

Je n'ai pas testé ceux-ci pour s'assurer qu'ils fonctionnent comme prévu, mais j'ai utilisé "Sur le verrouillage du poste de travail" avec une grande réussite. À partir de ce que je me souviens des tâches planifiées dans XP, il n'a que "quand je me connecte".

Win 7 Source Doc

Win XP source doc

J'espère que cela t'aides

Utilisation de Win32_PowerManagementEvent ? Je l'ai simplement googlé et j'ai trouvé le script suivant (pas de garantie;).

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 

Ajouter une tâche planifiée avec déclencheur: sur le déverrouillage du poste de travail. Cela fonctionne, je l'exécute après le réveil du sommeil. Om my Windows 2008R2 box, le service audio doit être redémarré, sinon il utilise parfois 100% de 1 processeur.

J'ai effectivement écrit un tel script il y a quelque temps et j'ai bloggé à ce sujet, mais je crois que c'était un peu après votre question ici. La prochaine fois que j'écris quelque chose comme ça, je vais chercher Stack Overflow tout de suite, car lorsque les gens recherchent de telles choses, ils ont tendance à aller sur ce site de nos jours.