就不多介紹了,直接上**吧。
#coding:utf-8
import datetime, time, os, wx
import tkinter, threading
from tkinter import * #控制項基礎包
#全域性變數
stopflag = false;
winwidth = 0;
winheight = 0;
#倒計時
def countdown(flag):
value_s = var_s.get();
try:
seconds = int(value_s);
#操作if flag == "shut":
shutdown(value_s);
else:
restart(value_s);
#顯示倒計時
show_countdown(seconds);
except:
label_pro.config(text="請輸入正確的數字。");
root.update();
return;
#顯示倒計時
def show_countdown(seconds):
global stopflag;
stopflag = false;
while seconds > 0:
if stopflag:
break;
time.sleep(1);
seconds = seconds - 1;
label_pro.config(text="關機倒計時: "+str(seconds)+" 秒");
root.update();
#關機操作
def shutdown(seconds):
os.system("shutdown -s -f -t "+seconds);
#重啟操作
def restart(seconds):
os.system("shutdown -r -f -t "+seconds);
#終止關機操作
def stopdown():
global stopflag;
stopflag = true;
os.system("shutdown -a");
#退出操作
def exit():
still.set(0);
thread.join(0.2);
root.destroy();#關閉視窗
#獲取當前時間
def getdatetime():
while still.get()==1:
datetime = datetime.datetime.now();
hourstr = addzero(datetime.hour);
minutestr = addzero(datetime.minute);
secondstr = addzero(datetime.second);
timevalue = hourstr+':'+minutestr+':'+secondstr;
time.sleep(0.2);
#補零def addzero(number):
valuestr = str(number);
if number < 10:
valuestr = "0"+valuestr;
return valuestr;
#獲取螢幕解析度
def getscreenresolution():
screenarr = wx.displaysize()
return screenarr;
#設定軟體透明度
def setscreentransparent(ev=none):
scalevalue = scale.get();
root.attributes('-alpha',scalevalue/100);#半透明
if __name__ == '__main__':
#螢幕解析度
screenarr = getscreenresolution();
winwidth = screenarr[0];
winheight = screenarr[1];
###grid布局###
root = tkinter.tk();
root.title("定時關機");
root.geometry('200x160+'+str(winwidth-230)+'+'+str(winheight-210));#初始大小與位置
root.attributes('-topmost',1);#總是在頂端
root.overrideredirect(true);#不顯示標題欄
#透明度
fm_scale = frame(root);
fm_scale.grid(row=0, column=0, padx=10, pady=5);
label_t = label(fm_scale,text="透明度:");
label_t.grid(row=0, column=0);
scale = scale(fm_scale,width=13,length=120,showvalue=0,from_=20,to=100,resolution=1,orient=horizontal,command=setscreentransparent);#縮放比例尺
scale.set(70);#初始值
scale.grid(row=0, column=1);
#當前時間
fm_time = frame(root);
fm_time.grid(row=1, column=0, padx=10, pady=0);
#視窗是否仍在執行
still = tkinter.intvar(value=1);
#顯示當前時間
label_time = label(fm_time,text="",foreground='blue',font='helvetica -14 bold');
label_time.grid(row=0, column=0);
thread = threading.thread(target=getdatetime);
thread.daemon =true;
thread.start();
#關機時間
fm_show = frame(root);
fm_show.grid(row=2, column=0, padx=10, pady=5);
label_s = label(fm_show,text="定時關機:");
label_s.grid(row=0, column=0);
var_s = tkinter.stringvar();
var_s.set(0);
entry_s = entry(fm_show, textvariable=var_s, width=5);
entry_s.grid(row=0, column=1);
label_s = label(fm_show,text="秒");
label_s.grid(row=0, column=2);
#提示fm_pro = frame(root);
fm_pro.grid(row=3, column=0, padx=10, pady=5);
label_pro = label(fm_pro,foreground='red',text="關機倒計時: 0 秒",font='helvetica -14 bold');
label_pro.grid(row=0, column=2);
#按鈕操作
fm_but = frame(root);
fm_but.grid(row=4, column=0, padx=10, pady=0);
but_shut = button(fm_but,text="關機",width=5,command=lambda:countdown(flag='shut'));
but_shut.grid(row=0, column=3);
but_shut = button(fm_but,text="重啟",width=5,command=lambda:countdown(flag='rest'));
but_shut.grid(row=0, column=4);
but_shut = button(fm_but,text="終止",width=5,command=stopdown);
but_shut.grid(row=0, column=5);
but_shut = button(fm_but,text="退出",width=5,command=exit);
but_shut.grid(row=0, column=6);
root.mainloop();
python編寫定時關機程式
import os,sys,time from pyqt5 import qtcore,qtwidgets,qtgui class guanji object defpageshow self,page 設定視窗的位置和大小 page.setgeometry 400,400,400,200 設定視窗...
hta實現的定時關機小程式
定時關機小程程式設計客棧序 介面 實現 複製 如下 定時關機小程式 applicationname hta test borde thin borderstyle raised icon c windows system32 control.exe scroll no singleinstance ...
Qt學習 五 例項定時關機小程式
一 關機程式實現原理 cmd指令 shutdown s t s 是關閉此計算機 t 是延遲多長時間關閉 後面跟秒數 例如 shutdown s t 60 意思是說60秒後關閉此計算 要取消關機請執行 shutdown a 輸入 shutdown i 則可以開啟設定自動關機對話方塊,對自動關機進行設定...