我想在计算机从睡眠模式唤醒时运行 exe 文件,如何在 Windows 10 中做到这一点?
答案1
您可以通过使用循环并检查时间的 Visual Basic 脚本来实现这一点。
如果您的 PC 处于睡眠或待机模式的时间大于 20 秒(在下面的代码中设置),那么脚本将执行 Rem A 和 Rem B 之间的代码。
如果您将其放在启动文件夹中,它将在每次启动计算机时执行。
您必须单击(或双击)一次,这样当您将 PC 置于睡眠或待机模式时,它就会运行。您可以在 REM A 和 REM B 之间放置自己的代码。
Function GetDiff(Tm_a, Tm_b)
If (isDate(Tm_a) And IsDate(Tm_b)) = False Then
GetDiff = "00:00:00"
Exit Function
End If
seconds = Abs(DateDiff("S", Tm_a, Tm_b))
minutes = seconds \ 60
hours = minutes \ 60
minutes = minutes Mod 60
seconds = seconds Mod 60
If Len(hours) = 1 Then hours = "0" & hours
GetDiff = hours & ":" & Right("00" & minutes, 2) & ":" & Right("00" & seconds, 2)
End Function
Do
a = Now
WScript.Sleep 5000
b = Now
If GetDiff(a, b) > "00:00:20" Then
Rem A
Set ob = CreateObject("Wscript.Shell")
UsrNm = ob.expandenvironmentstrings("%Username%")
UsrPrfl = ob.expandenvironmentstrings("%Userprofile%")
MsgBox "Hi " & UsrNm & " ( " & UsrPrfl & " )" & vbCrLf & _
"You just came out of Hibernate or Standby mode." & vbCrLf & _
"Instead of using an MsgBox, you can execute a program, command or code here," & vbCrLf & _
"e.g. ( ob.Run " & Chr(34) & Chr(34) & Chr(34) & "C:\Program Files\Internet Explorer" & Chr(34) & Chr(34) & Chr(34) & " )" _
& vbCrLf & vbCrLf & _
"Notice the three quotation marks in front and after the path," & vbCrLf & _
"They are required when you open a custom folder or file," & vbCrLf & _
"like .exe .jpg .vbs ...etc," & vbCrLf & _
"otherwise you will get the error ( The system can not find the file specified )", 4096, "Your pc nap time : " & GetDiff(a, b)
Rem B
End If
Loop
将上述代码粘贴到文本文件中,赋予其适当的名称,并将扩展名更改为 .vbs
如果您看不到扩展,请打开运行(win 键 + R)将以下字符串粘贴到运行文本框中:
RunDll32.exe shell32.dll,Options_RunDLL 7
然后按 Enter。这将在“视图”选项卡中打开“文件夹选项”。
取消选择隐藏已知文件类型的扩展名 您将能够看到扩展。
然后将 .vbs 文件放在启动文件夹中,以便每次启动 Windows 时都会执行它。
打开启动文件夹:
将以下字符串粘贴到运行(win 键 + R)中,粘贴字符串然后按 Enter,或使用它创建快捷方式:
"%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
我已经使用这个脚本很长时间了,它从来没有让我失望过。
如果您想在从睡眠或待机模式恢复时执行可执行文件(或其他内容),请擦除 Rem A 和 Rem B 之间的所有内容,并使用以下代码:
设置 ob = CreateObject("Wscript.Shell")
ob.Run“”将可执行文件的完整路径粘贴到这些引号之间“””
例如 ob.Run """C:\Program Files\Internet Explorer\iexplore.exe"""
确保路径前后只有三个引号。您必须单击一次脚本,然后即使 PC 退出睡眠或待机模式,它也会无限循环。
如果您还有其他问题,请询问。
重要信息:
设置的任务(在 REM A 和 REM B 之间)将在您输入密码之前执行,前提是您有密码,并且在 powercfg.cpl 中设置了“唤醒时需要密码”(即所谓的电源选项)