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()

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir