Запустити сценарій, коли Windows відновиться із стану призупинення / сну?


15

Чи є спосіб, щоб Windows (XP, Vista та 7) запустив сценарій, коли машина повертається зі сплячого / призупиненого режиму? Зі мною було б добре, якщо сценарій запускається після того, як користувач розблокує заблокований сеанс після відновлення машини.

У мене є служба, яку потрібно запустити, коли машина поновлюється, щоб змусити її нормально працювати при резюме.

Відповіді:


15

У Windows 7 ви можете це зробити із запланованим завданням. Настройте пакетний сценарій для виконання потрібних дій, а потім створіть завдання за допомогою одного з наступних тригерів:

  • На розблокуванні робочої станції - Ігнорує перший вхід, але почнеться після розблокування.
  • Підключення до сеансу користувача - кожен вхід, може бути локальним або віддаленим з'єднанням.
  • Щодо події - у системному журналі джерело "Power-Troubleshooter" запише код коду події 1, коли ви прокинетесь зі стану сну.

Я не перевіряв їх, щоб переконатися, що вони працюють так, як очікувалося, але я використовував "На блокуванні робочої станції" з великим успіхом. З того, що я пам’ятаю про заплановані завдання в XP, він містить лише «Коли я входжу».

win 7 джерело док

win XP джерело док

Сподіваюсь, це допомагає


2
Зауважте, що параметри тригера "На блокуванні / розблокуванні робочої станції" відображаються лише для "Створити завдання ...", а не "Створити основну задачу ..."
rymo

Джерело "Power-Troubleshooter" також працює з Win 8.1.
Трава

1
Засіб виправлення неполадок не працює для мене у виграші 10 професіоналів. Розблокування робочої станції все одно працює
електронна хмара

1
«На розблокуванні на робочій станції» працює для мене
sms247

Код події 107 працює для мене у програмі win 10 pro
Alex78191

2

Використання Win32_PowerManagementEvent ? Я просто погуглив його і знайшов наступний сценарій (жодної гарантії;).

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

Додайте планове завдання за допомогою тригера: на розблокуванні робочої станції. Це працює, я запускаю його після пробудження зі сну. У моєму вікні Windows 2008R2 аудіо-послугу потрібно перезапустити, інакше іноді вона використовує 100% 1 процесор.


-1

Я насправді писав такий сценарій деякий час тому і блогував про нього, але я вірю, що це було трохи після вашого питання тут. Наступного разу, коли я напишу щось подібне, я одразу шукаю Stack Overflow, тому що, коли люди шукають подібні речі, вони, як правило, зараз відвідують цей сайт.


4
Хоча мати посилання є приємним, ви можете, можливо, розмістити важливі частини (навіть сценарій) тут, на місці? Таким чином користувачам не доведеться їхати кудись інше, і якщо блог коли-небудь знизиться, у нас є резервна копія.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.