Belirli bir zamanda bilgisayarı kapatma ya da yeniden başlatma işlemlerini yaptırabileceğimiz bir masaüstü uygulaması yapmayı öğreniyoruz.
from tkinter import * from PIL import Image, ImageTk import os from tkinter import messagebox class Zamanla(Tk): def __init__(self): Tk.__init__(self) self.zaman = Entry(self, font=("Baloo 2", 30, "bold"), width=3, justify='center') self.zaman.pack(side=LEFT, padx=5) self.zaman.insert(0, "1") resim1 = Image.open('res1.png') self.resim1 = ImageTk.PhotoImage(resim1) resim2 = Image.open('res2.png') self.resim2 = ImageTk.PhotoImage(resim2) resim3 = Image.open('res3.png') self.resim3 = ImageTk.PhotoImage(resim3) # tıklandığında değişecekler resim4 = Image.open('res4.png') self.resim4 = ImageTk.PhotoImage(resim4) resim5 = Image.open('res5.png') self.resim5 = ImageTk.PhotoImage(resim5) self.kapatma_dugmesi = Button(self, image=self.resim1, bd=0, command=self.kapat) self.kapatma_dugmesi.pack(side=LEFT) self.kapatma_acma_dugmesi = Button(self, image=self.resim2, bd=0, command=self.kapat_ac) self.kapatma_acma_dugmesi.pack(side=LEFT) self.iptal_dugmesi = Button(self, image=self.resim3, bd=0, command=self.iptal) self.iptal_dugmesi.pack(side=LEFT) def kapat(self): try: os.system(f"shutdown /s /f /t {str(int(self.zaman.get()) * 60)}") self.kapatma_dugmesi.config(image=self.resim4) self.kapatma_dugmesi.config(state='disabled') self.kapatma_acma_dugmesi.config(state='disabled') self.zaman.config(state='disabled') except ValueError: messagebox.showerror("Hatalı Değer!", "Zamanlayıcı için tamsayı olarak bir değer girmeniz gerekmektedir") def kapat_ac(self): try: os.system(f"shutdown /r /f /t {str(int(self.zaman.get()) * 60)}") self.kapatma_acma_dugmesi.config(image=self.resim5) self.kapatma_dugmesi.config(state='disabled') self.kapatma_acma_dugmesi.config(state='disabled') self.zaman.config(state='disabled') except ValueError: messagebox.showerror("Hatalı Değer!", "Zamanlayıcı için tamsayı olarak bir değer girmeniz gerekmektedir") def iptal(self): os.system("shutdown /a") self.kapatma_dugmesi.config(image=self.resim1) self.kapatma_acma_dugmesi.config(image=self.resim2) self.kapatma_dugmesi.config(state='normal') self.kapatma_acma_dugmesi.config(state='normal') self.zaman.config(state='normal') if __name__ == "__main__": app = Zamanla() app.title("Zamanlayıcı") app.iconphoto(True, PhotoImage(file="sft.png")) app.geometry("330x80") app.resizable(False, False) app.mainloop()