13

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

У меня есть служба, которую нужно отключить, когда я возобновлю работу машины, чтобы она работала правильно при возобновлении работы машины.

4 ответа4

14

В Windows 7 вы можете сделать это с помощью запланированного задания. Установите пакетный скрипт для выполнения необходимых действий, а затем создайте задачу с помощью одного из следующих триггеров:

  • Разблокировка на рабочей станции - игнорирует первый вход в систему, но запускается после разблокировки.
  • При подключении к сеансу пользователя - каждый вход в систему, может быть локальным или удаленным подключением.
  • О событии. В системном журнале источник «Power-Troubleshooter» регистрирует код события 1, когда вы выходите из спящего режима.

Я не проверял их, чтобы убедиться, что они работают должным образом, но я использовал "Блокировку на рабочей станции" с большим успехом. Из того, что я помню о запланированных задачах в XP, он имеет только "Когда я вхожу в систему".

Win 7 Source Doc

Win XP исходный документ

Надеюсь это поможет

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

Я на самом деле написал такой сценарий некоторое время назад и написал об этом в блоге , но я верю, что это было немного после вашего вопроса здесь. В следующий раз, когда я напишу что-то подобное, я сразу же начну поиск переполнения стека, потому что, когда люди ищут такие вещи, они, как правило, посещают этот сайт в настоящее время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .