自助式自动重启测试

import os,sys,shutil,webbrowser
import tkinter as tk
from tkinter import scrolledtext,END,Y,LEFT,BOTH,messagebox
sys.path.append("..")
class Video(object):
    def __init__(self,master):
        self.master = master
        self.adict={}
        self.bdict={}
        self.initWidgets()
        
    def initWidgets(self):
        #菜单点击搜索结果复制到剪切板到浏览器
        menubar = tk.Menu(self.master)
        filemenu = tk.Menu(menubar,tearoff=0) 
        filemenu_1 = tk.Menu(menubar,tearoff=0) 
        menubar.add_cascade(label='关于',menu=filemenu) 
        filemenu.add_command(label='Xcsg  ver1.0')
        menubar.add_cascade(label='帮助',menu=filemenu_1)
        filemenu_1.add_command(label='操作',command=self.runing)
        self.master.config(menu = menubar)

        tk.Label(self.master,text='请输入重启次数:',font=('Arial,12'),width=15,height=2).place(x=0,y=10)
        #结果窗口#布局窗口
        frm=tk.Frame(self.master)
        frm.place(x=5,y=80)
        frm_1 = tk.Frame(frm)
        frm_2 = tk.Frame(frm)
        frm_1.pack(side='left')
        frm_2.pack(side='right')
        t_x = tk.Scrollbar(frm)

        self.rest = tk.Listbox(frm,height=15,width=88,yscrollcommand=t_x.set)
        # rest.place(x=10,y=80)

    
        t_x.config(command=self.rest.yview)
        ret = tk.StringVar()
        self.e = tk.Entry(self.master,show=None,textvariable=ret,width=35)
        self.e.place(x=120,y=20)

        lable = tk.Label(self.master,text='人生苦短,及时行乐').place(x=480,y=75)
       
        tk.Label(self.master,text='技术博客 https://www.cnblogs.com/xcsg').place(x=3,y=75)
        tn = tk.Button(self.master,text='技术博客 https://www.cnblogs.com/xcsg',width=35,height=0,command=self.info_url_).place(x=3,y=75)
        tn = tk.Button(self.master,text='开始',width=20,height=1,command=self.crawl).place(x=450,y=14)
    def runing(self):
        messagebox.showinfo(title='操作', message='输入次数即可自动重启,此软件仅限重启测试,如有纠纷概不负责')    
    
     #浏览器跳转
    def info_url_(self,event='<Double-Button-1>') -> str:
        webbrowser.open('https://www.cnblogs.com/xcsg')
        
    def crawl(self):
        name = self.e.get()
  
        if os.path.exists('C:/ProgramData/config.txt'):
            self.fun()
        else:
            with open('C:/ProgramData/config.txt', 'w') as f:
                f.write('1,%s'%name)
            self.fun()
    
        
        os.system("shutdown /r /t 0")

    def fun(self):
        ff = open('C:/ProgramData/config.txt',encoding='utf-8')
        m = ff.read()
        ff.close()
        num = m.split(',')
        if num[0] == num[1]:
            sys.exit()
        s = int(num[0])+1
        hh =str(s)+","+num[1] 
        with open('C:/ProgramData/config.txt', 'w') as f:
            f.write(hh)
        os.system("shutdown /r /t 0")
 

if __name__ == '__main__':
    traget = 'C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup'
    a = "shutd.exe"
    if os.path.exists('C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup/shutd.exe'):
        ff = open('C:/ProgramData/config.txt',encoding='utf-8')
        m = ff.read()
        ff.close()
        num = m.split(',')
        if num[0] == num[1]:
            sys.exit()
        s = int(num[0])+1
        hh =str(s)+","+num[1] 
        with open('C:/ProgramData/config.txt', 'w') as f:
            f.write(hh)
        os.system("shutdown /r /t 0")
    
    else:
        shutil.copy(a,os.path.join(traget, a))
        window = tk.Tk()
        window.title('自助式自动重启测试')
        # window.geometry("650x400")
        Video(window)
        window.resizable(width=False, height=False)
        window.update_idletasks()
        # width, height = (window.winfo_width(), window.winfo_height())
        width, height = (650,100)
        screenwidth, screenheight = (window.winfo_screenwidth(), window.winfo_screenheight())
        size_loc = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2-30)
        window.geometry(size_loc)
        window.mainloop()

 

posted @ 2023-09-14 19:34  Xcsg  Views(29)  Comments(0Edit  收藏  举报