0
import threading
import os

def shutdown():
    os.system("shutdown -s")

# user setting zone!!!
hour = 0
minute = 20
sec = 0
# user setting zone!!!

total_sec = hour*3600.0 + minute*60.0 + sec - 60.0

if total_sec < 0:
    total_sec = 0
print("The computer will be Shut Down in (%d hour, %d minute, %d second).\n" %(hour, minute, sec))

if total_sec >= 120:
    temp_sec = total_sec - 120
    threading.Timer(temp_sec, lambda: print("Last 3 minutes before shuting down the computer!!\n")).start()
else:
    print("Less than 3 minutes before shuting down the computer!!\n")

threading.Timer(total_sec, shutdown).start()

代码如上所示。当我将时间设置为 10 分钟、20 分钟或稍长一些时,脚本可以正常工作。但是,如果我将等待时间设置为 4 小时或 5 小时等较长时间,则脚本根本无法运行。时间一到,什么都不会发生。您能否指出错误发生的原因并指导我修复它?提前致谢。

4

1 回答 1

0

你真的计时了吗?您说它可以正常工作,但是设置10分钟后它实际上是否会在10分钟内关闭计算机,而不是说15分钟以上?

我问是因为看起来您已设置为给您 3 分钟的警告。但是,由于您在“threading.Timer(total_sec,shutdown).start()”中使用了total_sec,因此计时器会重置,因此当您将其设置为60分钟时,它会在57分钟时向您发出警告,然后再运行60分钟。

因此,我怀疑如果让它运行 11 小时,当你设置它 5 小时时,它实际上会关闭计算机。

于 2013-01-18T18:53:20.963 回答