可以使用win32 CreateWaitableTimer API。
- 当调用系统睡眠时,创建WaitableTimer的过程必须处于活动状态。
- 示例使用pywin32 api。
- 允许定时器在Windows电源配置中将系统从睡眠中唤醒。
from win32event import CreateWaitableTimer
from win32event import SetWaitableTimer
from win32event import WaitForSingleObject
import sys
def main(minutes):
minutes = int(minutes)
handle = CreateWaitableTimer(None, True, 'Wake up')
dt = -10000000 * minutes * 60 # Convert to seconds.
SetWaitableTimer(handle, dt, 0, None, None, True)
rc = WaitForSingleObject(handle, 1000 * (minutes + 1) * 60) # 11 s.
print ("Done")
if __name__ == '__main__':
minutes = sys.argv[1]
main(minutes)
对于从控制台运行上面的脚本调用wakeupWindows.py像:
python wakeupWindows.py 2
从现在设定的唤醒定时器2分钟。 脚本将等待2 + 1 = 3分钟。 从另一个控制台让系统进入了梦乡使用:
shutdown /h
2分钟后,系统会从睡眠中醒来。
使用C#可以实现类似的实现,或者可以使用pyinstaller将此脚本转换为exe,如解释here所述。
来源
2018-02-14 08:59:56
Luv
您的命令将永远不会工作,因为睡眠和唤醒需要分开的任务。如果你阅读了与你相关联的关系,你会看到两个不同的**计划任务**,一个睡觉,另一个醒来。 – DavidPostill
有没有办法让电脑进入睡眠状态,然后唤醒它? – Bond
不是在同一**命令中。一旦它睡着了,唤醒它的唯一方法就是从计划任务开始。链接**解释了这一点**“没有真正的命令行命令来唤醒您的计算机,因为如果您有能力运行命令,那么您的计算机显然已经清醒了。” – DavidPostill