日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python实现电脑自动关机

發布時間:2023/12/19 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 python实现电脑自动关机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初學python,想做一個自動關電腦的程序,到了晚上11點讓電腦自動關機,寫了一個簡單的python代碼。雖然只是一個簡單的功能,但是經歷了好幾次優化的過程

第一個過程:最簡單的實現定時關機的功能

from datetime import *
import os

tmNow = datetime.now()
d = date.today()
t = time(23,10,0)
shtdownTime = datetime.combine(d,t)

def ShutDown():
    while True:
        tmNow = datetime.now()
        timedDelta = (shtdownTime - tmNow).total_seconds()
        if timedDelta < 60:
            os.system('shutdown -s -f -t 59')
            break
        else:
            continue
            
if __name__ == '__main__':
    ShutDown()

上面這個代碼已經實現了基本的自動關機功能。使用一個while循環實時監測當前時間距離關機時間還有多少秒,當距離關機時間<1分鐘的時候,執行關機的腳本os.system('shutdown -s -f -t 59')

第二個過程:給機主一個彈框提示

但是這樣不夠人性化,機主也許在工作有需要保存的工作沒有保存,這樣突然關機導致機主的代碼或者游戲進度丟失,所以我想在關機之前給機主一個彈框提示“我要關機了,趕快保存一下!”,這就需要使用win32api庫,調用Windows的鉤子函數彈出messageBox。改進之后的代碼如下:

 1 from datetime import *
 2 import os
 3 
 4 tmNow = datetime.now()
 5 d = date.today()
 6 t = time(23,10,0)
 7 shtdownTime = datetime.combine(d,t)
 8 
 9 def ShutDown():
10     while True:
11         tmNow = datetime.now()
12         timedDelta = (shtdownTime - tmNow).total_seconds()
13         if timedDelta < 60:
14             win32api.MessageBox(win32con.NULL, u'還有59s關機,趕快保存一下!', u'溫馨提醒', win32con.MB_OK)
15             os.system('shutdown -s -f -t 59')           
16             break
17         else:
18             continue
19             
20 if __name__ == '__main__':
21     ShutDown()

相比第一段代碼只是新增了第15行 win32api.MessageBox(win32con.NULL, u'還有59s關機,趕快保存一下!', u'溫馨提醒', win32con.MB_OK),距離開機時間<1分鐘的時候,給出一個彈框提示。點擊確定按鈕開始執行關機腳本。

但是這樣又出現了一個問題,如果機主不點擊“溫馨提醒”對話框的確定按鈕,程序就永遠也不會執行關機腳本,這樣機主哪怕玩到夜里一兩點也不會自動關機了。所以就有了第三個過程的改進。

第三個過程:雙線程實現,一個線程用來彈出提醒框,另一個線程用來執行關機腳本,也就是我的最終代碼。代碼如下。

 1 #coding=utf-8
 2 "shutdown at 23:00"
 3 
 4 from datetime import *
 5 import os
 6 import win32api
 7 import win32con
 8 from threading import *
 9 
10 tmNow = datetime.now()
11 d = date.today()
12 t = time(23,10,0)
13 shtdownTime = datetime.combine(d,t)
14 
15 def ShowHint():    
16     while True:
17         tmNow = datetime.now()
18         timedDelta = (shtdownTime - tmNow).total_seconds()
19         if timedDelta < 60:
20             win32api.MessageBox(win32con.NULL, u'還有59s關機,趕快保存一下!', u'溫馨提醒', win32con.MB_OK)
21             break
22         else:
23             continue
24 def ShutDown():
25     while True:
26         tmNow = datetime.now()
27         timedDelta = (shtdownTime - tmNow).total_seconds()
28         if timedDelta < 60:
29             os.system('shutdown -s -f -t 59')
30             break
31         else:
32             continue
33             
34 if __name__ == '__main__':
35     threadShowHint = threading.Thread(target=ShowHint)
36     threadShutDown = threading.Thread(target=ShutDown)
37     
38     threadShowHint.start()
39     threadShutDown.start()

View Code

總結

以上是生活随笔為你收集整理的python实现电脑自动关机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。