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


14

当计算机从休眠/挂起模式返回时,是否可以让Windows(XP,Vista和7)运行脚本?如果脚本在用户恢复其机器恢复后解锁锁定的会话后运行,我可以接受。

当我的计算机恢复运行时,我需要启动一项服务,以使其在恢复时能够正常运行。

Answers:


14

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

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

我没有对它们进行测试以确保它们能够按预期工作,但是我使用了“在工作站上锁定”时获得了很大的成功。我记得XP中的计划任务,它只有“当我登录时”。

赢得7个原始文件

赢得XP源文件

希望这可以帮助


2
请注意,“在工作站上锁定/解锁”触发选项仅针对“创建任务...”而不是“创建基本任务...”显示
rymo 2012年

“ Power-Troubleshooter”源也可用于Win 8.1。
赫尔(Herb)

1
Power-Troubleshooter在win 10专业版中对我不起作用。工作站解锁无论如何都有效
e-cloud

1
“在工作站上解锁”对我
有用

比赛代码107为我赢得了10专业比赛
Alex78191 '19

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 cpu。


-1

实际上,我前一段时间确实写过这样的脚本并在博客上写过,但是我确实相信这是在您提出问题之后。下次我写这样的东西时,我将立即搜索Stack Overflow,因为当人们寻找这样的东西时,他们如今倾向于访问此站点。


4
虽然链接很好,但是您可以在此处发布重要部分(甚至脚本)吗?这样,用户就不必去其他地方了,万一博客崩溃了,我们会有一个备份。
slhck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.