当 Windows 从挂起/休眠状态恢复时运行脚本?

当 Windows 从挂起/休眠状态恢复时运行脚本?

有没有办法让 Windows (XP、Vista 和 7) 在计算机从休眠/挂起模式返回时运行脚本?如果在计算机恢复后用户解锁锁定的会话后运行脚本,我同意。

我有一个服务,需要在机器恢复时将其踢出,以使其在恢复时正常运行。

答案1

在 Windows 7 中,您可以使用计划任务执行此操作。设置批处理脚本来执行您想要的操作,然后使用以下触发器之一创建任务:

  • 在工作站解锁时-忽略首次登录,但将在解锁后启动。
  • 连接到用户会话时 - 每次登录都可以是本地或远程连接。
  • 在事件中 - 在系统日志中,当您从睡眠状态唤醒时,“电源故障排除程序”源将记录事件代码 1。

我没有测试这些以确保它们按预期工作,但我使用过“工作站锁定时”并取得了很大成功。据我记得,XP 中的计划任务只有“当我登录时”。

win 7 源文档

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

答案3

添加带有触发器的计划任务:工作站解锁。它有效,我在从睡眠状态唤醒后运行它。在我的 Windows 2008R2 机箱中,音频服务需要重新启动,否则有时会占用 1 个 CPU 的 100%。

答案4

我之前确实写过这样的脚本,已发表于博客对此我不太了解,但我相信这是在你提出问题之后的事情。下次我写类似的东西时,我会立即搜索 Stack Overflow,因为现在人们在寻找这类东西时,往往会访问这个网站。

相关内容