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

実際に計ったことはありますか?正常に動作するとおっしゃっていますが、15 分以上ではなく、10 分に設定した場合、実際には 10 分でコンピューターがシャットダウンしますか?

3 分間の警告を表示するように設定されているようですので、お尋ねします。ただし、「threading.Timer(total_sec, shutdown).start()」で total_sec を使用するため、タイマーがリセットされます。たとえば、60 分に設定すると、57 分で警告が表示され、さらに 60 分間実行されます。

したがって、11 時間実行した場合、5 時間設定すると、実際にコンピューターがシャットダウンするのではないかと思います。

于 2013-01-18T18:53:20.963 に答える