对于这个问题是否已经提出,我很抱歉,但是我尝试了一天没有成功,所以请尝试提供帮助。
我需要将计算机设置为睡眠状态,并在一分钟后自动将其唤醒。
我编写了一个脚本来这样做:
wakeUp.py:
handle = CreateWaitableTimer(None, True, 'Wake up')
# Convert to seconds.
dt = -10000000 * 60
#set a timer to wakeup
SetWaitableTimer(handle, dt, 0, None, None, True)
print "waiting..."
rc = WaitForSingleObject(handle, 1000 * 60)
if(rc == win32event.WAIT_FAILED):
print "wait failed"
elif(rc == win32event.WAIT_TIMEOUT):
print "wait timeout"
elif(rc == win32event.WAIT_OBJECT_0):
print ("Woke Up!")
当我单独运行脚本然后告诉我的计算机进入睡眠状态时,该脚本有效。 当我尝试从python程序内部启动计算机时,计算机进入睡眠状态但未唤醒。 尝试检查任务管理器时,我发现该程序作为Windows Powershell的子进程运行(从此处启动python程序)
这是我的python代码的相关部分:
def startSleepProcess():
print "Going to sleep.."
#set computer to sleep
subprocess.call(["powershell.exe","Rundll32.exe Powrprof.dll, SetSuspendState Sleep"], shell=True)
def wakeUp():
subprocess.Popen("python wakeUp.py", shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
if _name__ == "__main__":
wakeUp()
startSleepProcess()
为什么会这样?我该如何解决?
谢谢!