从 C# 程序中,我想调用 Windows 命令提示符并使系统进入睡眠状态,几秒钟后我应该唤醒系统。我成功地让系统进入睡眠状态,但几秒钟后我无法唤醒它。我尝试使其睡眠和唤醒的命令是“powrprof.dll,SetSuspendState 0,1,0 && timeout 10 && echo "Hello World"”。
链接http://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/ http://www.groovypost.com/howto/schedule-wake-sleep-windows-automatically/说 echo 会唤醒系统,但它不起作用。
可以使用 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 https://mborgerson.com/creating-an-executable-from-a-python-script/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)