Czy uruchomić skrypt po wznowieniu działania systemu Windows ze stanu zawieszenia / hibernacji?


15

Czy istnieje sposób, aby system Windows (XP, Vista i 7) uruchomił skrypt, gdy komputer powróci z trybu hibernacji / zawieszenia? Byłoby ze mną w porządku, gdyby skrypt działał po tym, jak użytkownik odblokuje zablokowaną sesję po wznowieniu pracy komputera.

Mam usługę, która musi zostać uruchomiona po wznowieniu pracy maszyny, aby umożliwić jej prawidłowe działanie po wznowieniu.

Odpowiedzi:


15

W systemie Windows 7 możesz to zrobić za pomocą zaplanowanego zadania. Skonfiguruj skrypt wsadowy, aby wykonać żądane działania, a następnie utwórz zadanie z jednym z następujących wyzwalaczy:

  • Odblokuj na stacji roboczej - ignoruje pierwsze logowanie, ale rozpocznie się po odblokowaniu.
  • Przy połączeniu z sesją użytkownika - Każde logowanie może być połączeniem lokalnym lub zdalnym.
  • Podczas zdarzenia - w dzienniku systemowym źródło „Narzędzie do rozwiązywania problemów z zasilaniem” rejestruje kod zdarzenia 1 po przebudzeniu ze stanu uśpienia.

Nie testowałem ich, aby upewnić się, że działają zgodnie z oczekiwaniami, ale z dużym powodzeniem zastosowałem blokadę „Na stacji roboczej”. Z tego, co pamiętam z zaplanowanych zadań w XP, ma tylko „Kiedy się loguję”.

wygraj 7 źródłowy dokument

wygraj dokument źródłowy XP

Mam nadzieję że to pomoże


2
Zwróć uwagę, że opcje wyzwalania „Zablokuj / odblokuj stację roboczą” są wyświetlane tylko dla „Utwórz zadanie ...”, a nie „Utwórz podstawowe zadanie ...”
rymo

Źródło „Narzędzie do rozwiązywania problemów z zasilaniem” działa również z Win 8.1.
Herb

1
Narzędzie do rozwiązywania problemów z zasilaniem nie działa dla mnie w Win 10 Pro. Odblokowanie stacji roboczej i tak działa
e-chmura

1
„Na odblokowaniu stacji roboczej” działa dla mnie
sms247,

Kod zdarzenia 107 działa dla mnie w win 10 pro
Alex78191

2

Korzystasz z Win32_PowerManagementEvent ? Właśnie go przejrzałem i znalazłem następujący skrypt (bez gwarancji;).

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

1

Dodaj zaplanowane zadanie z wyzwalaczem: na odblokowaniu stacji roboczej. Działa, uruchamiam go po przebudzeniu ze snu. Om, mój Windows 2008R2 box, usługa audio musi zostać zrestartowana, w przeciwnym razie czasami używa 100% 1 procesora.


-1

Napisałem taki skrypt jakiś czas temu i napisałem o nim na blogu , ale sądzę, że to trochę po twoim pytaniu tutaj. Następnym razem, gdy napiszę coś takiego, od razu przeszukuję Przepełnienie stosu, ponieważ kiedy ludzie szukają takich rzeczy, zwykle odwiedzają tę stronę.


4
Posiadanie linku jest miłe, ale czy mógłbyś opublikować ważne części (nawet skrypt) tutaj, na stronie? W ten sposób użytkownicy nie będą musieli udać się w inne miejsce, a na wypadek, gdyby blog się zepsuł, mamy kopię zapasową.
slhck,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.