Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- from PIL import Image, ImageTk
- from Tkinter import *
- import tkMessageBox
- import urllib
- import thread
- import time
- import sys
- import os
- #######Globale vordefinierte Variablen###########
- bg = "#FFFFFF"
- thread_stopper = 0
- p_start = 0
- #########Liz Finder#############################
- try:
- f = urllib.urlopen("http://home.xdaminecraft.de/shut.txt") #Internetabh�ngig
- g = open("shut.liz", "r")
- except:
- sys.exit(0)
- liz_internet = ""
- for i in f:
- liz_internet = liz_internet + i
- liz_datei = ""
- for i in g:
- liz_datei = liz_datei + i
- if liz_datei != liz_internet:
- sys.exit(0)
- f.close()
- g.close()
- #######
- def exit_handler():
- global f1, f2, root, thread_stopper
- thread_stopper = 1
- f1.destroy()
- f2.destroy()
- root.destroy()
- sys.exit(0)
- def os_system(befehl, tox):
- os.system(befehl)
- def shutdown_action():
- global e_shut_var
- t = e_shut_var.get()
- thread.start_new_thread(os_system, (t, 0))
- exit_handler()
- def start_procedure(rb, tox):
- global e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde, p_start
- p_start = 1
- button_start.config(fg="green")
- e_szeit_stunde.config(fg="green")
- e_szeit_minute.config(fg="green")
- e_szeit_sekunde.config(fg="green")
- e_count_minute.config(fg="green")
- e_count_sekunde.config(fg="green")
- button_start.config(state=DISABLED)
- #----
- if rb == 1: #Counter
- e_count_minute.config(state=NORMAL)
- e_count_sekunde.config(state=NORMAL)
- e_szeit_stunde.config(state=DISABLED)
- e_szeit_minute.config(state=DISABLED)
- e_szeit_sekunde.config(state=DISABLED)
- minute = int(e_count_minute.get())
- sekunde = int(e_count_sekunde.get())
- while True:
- sekunde = sekunde - 1
- if sekunde == -1:
- minute = minute - 1
- sekunde = 59
- if minute == 0:
- if sekunde == 0:
- shutdown_action()
- return
- e_count_minute.delete(0, END)
- e_count_sekunde.delete(0, END)
- e_count_minute.insert(0, str(minute))
- e_count_sekunde.insert(0, str(sekunde))
- time.sleep(1)
- if rb == 2: #Festzeit
- e_count_minute.config(state=DISABLED)
- e_count_sekunde.config(state=DISABLED)
- e_szeit_stunde.config(state=NORMAL)
- e_szeit_minute.config(state=NORMAL)
- e_szeit_sekunde.config(state=NORMAL)
- stunde = int(e_szeit_stunde.get())
- minute = int(e_szeit_minute.get())
- sekunde = int(e_szeit_sekunde.get())
- while True:
- zeit = time.localtime()
- if zeit[3] == stunde:
- if zeit[4] == minute:
- if zeit[5] == sekunde:
- shutdown_action()
- return
- e_szeit_stunde.delete(0, END)
- e_szeit_minute.delete(0, END)
- e_szeit_sekunde.delete(0, END)
- e_szeit_stunde.insert(0, str(stunde))
- e_szeit_minute.insert(0, str(minute))
- e_szeit_sekunde.insert(0, str(sekunde))
- time.sleep(0.2)
- def start():
- global rb_var, button_start, e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde, rb_countdown, rb_festzeit
- rb_festzeit.config(state=DISABLED)
- rb_countdown.config(state=DISABLED)
- #-----
- if rb_var.get() == 1: #Counter
- if int(e_count_minute.get()) > 99:
- tkMessageBox.showerror(title="Fehler", message="99 Minuten sind die Maximalbegrenzung beim Countdown.\n["+e_count_minute.get()+" ist zu viel]")
- return
- if int(e_count_sekunde.get()) > 59:
- tkMessageBox.showerror(title="Fehler", message="59 Sekunden sind die Maximalbegrenzung beim Countdown.\n["+e_count_sekunde.get()+" ist zu viel]")
- return
- if int(e_count_minute.get()) < 1:
- if int(e_count_sekunde.get()) < 1:
- tkMessageBox.showerror(title="Fehler", message="1 Sekunde ist die Minimalbegrenzung beim Countdown.\n["+e_count_sekunde.get()+" ist zu wenig]")
- return
- if rb_var.get() == 2: #Festzeit
- if int(e_szeit_stunde.get()) > 23:
- tkMessageBox.showerror(title="Fehler", message="23 Stunden sind die Maximalbegrenzung bei der Festzeit.\n["+e_szeit_stunde.get()+" ist zu viel]")
- return
- if int(e_szeit_stunde.get()) < 0:
- tkMessageBox.showerror(title="Fehler", message="0 Stunden sind die Minimalbegrenzung bei der Festzeit.\n["+e_szeit_stunde.get()+" ist zu wenig]")
- return
- if int(e_szeit_minute.get()) > 59:
- tkMessageBox.showerror(title="Fehler", message="59 Minuten sind die Maximalbegrenzung bei der Festzeit.\n["+e_szeit_minute.get()+" ist zu viel]")
- return
- if int(e_szeit_minute.get()) < 0:
- tkMessageBox.showerror(title="Fehler", message="0 Minuten sind die Minimalbegrenzung bei der Festzeit.\n["+e_szeit_minute.get()+" ist zu wenig]")
- return
- if int(e_szeit_sekunde.get()) > 59:
- tkMessageBox.showerror(title="Fehler", message="59 Sekunden sind die Maximalbegrenzung bei der Festzeit.\n["+e_szeit_sekunde.get()+" ist zu viel]")
- return
- if int(e_szeit_stunde.get()) < 1:
- if int(e_szeit_minute.get()) < 1:
- if int(e_szeit_sekunde.get()) < 1:
- tkMessageBox.showerror(title="Fehler", message="1 Sekunden sind die Minimalbegrenzung bei der Festzeit.\n["+e_szeit_sekunde.get()+" ist zu wenig]")
- return
- thread.start_new_thread(start_procedure, (rb_var.get(), 0))
- def set_e_to_null():
- global e_czeit_stunde, e_czeit_minute, e_czeit_sekunde, e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde
- e_czeit_stunde.delete(0, END)
- e_czeit_minute.delete(0, END)
- e_czeit_sekunde.delete(0, END)
- e_szeit_stunde.delete(0, END)
- e_szeit_minute.delete(0, END)
- e_szeit_sekunde.delete(0, END)
- e_count_minute.delete(0, END)
- e_count_sekunde.delete(0, END)
- #---
- e_czeit_stunde.insert(0, "0")
- e_czeit_minute.insert(0, "0")
- e_czeit_sekunde.insert(0, "0")
- e_szeit_stunde.insert(0, "0")
- e_szeit_minute.insert(0, "0")
- e_szeit_sekunde.insert(0, "0")
- e_count_minute.insert(0, "0")
- e_count_sekunde.insert(0, "0")
- def version():
- pass # So lassen!
- def getinfo_exit(NONE):
- global infotk
- infotk.destroy()
- def get_info():
- global infotk, bg, label_photo, photo_head
- infotk = Tk()
- infotk.overrideredirect(1)
- width = infotk.winfo_screenwidth()/2
- height = infotk.winfo_screenheight()/2
- infotk.geometry("400x400")
- XPOS = width-200
- YPOS = height-200
- infotk.geometry("+%d+%d" % (XPOS, YPOS))
- #----
- label_info_1 = Label(infotk, text="SHUT", font="Impact 80", fg="#FF0000")
- label_info_2 = Label(infotk, text="by Tizian Pessel\nv1.0.2\nfidoro@hotmail.de", font="Impact 10", fg="#000000")
- label_info_3 = Label(infotk, text="[ESC]", font="Lucida_Console 10")
- label_info_1.place(x=90, y=110)
- label_info_2.place(x=0, y=300)
- label_info_3.place(x=0, y=0)
- #----
- infotk.bind("<Escape>", getinfo_exit)
- infotk.bind("<Button-1>", getinfo_exit)
- infotk.mainloop()
- def exit_request():
- tkMessageBox.showinfo(title="Achtung", message="Wenn sie das Programm beenden, wird der Countdown abgebrochen und der PC nicht heruntergefahren!")
- exit_handler()
- def inaktivate_all():
- global button_start, e_czeit_stunde, e_czeit_minute, e_czeit_sekunde, e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde
- button_start.config(state=DISABLED)
- #e_czeit_stunde.config(state=DISABLED)
- #e_czeit_minute.config(state=DISABLED)
- #e_czeit_sekunde.config(state=DISABLED)
- e_szeit_stunde.config(state=DISABLED)
- e_szeit_minute.config(state=DISABLED)
- e_szeit_sekunde.config(state=DISABLED)
- e_count_minute.config(state=DISABLED)
- e_count_sekunde.config(state=DISABLED)
- def loopback_abfragen(po, op):
- global p_start, thread_stopper, rb_var, e_czeit_stunde, e_czeit_minute, e_czeit_sekunde, e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde
- while True:
- if thread_stopper == 1:
- return
- #--ctime trigger--
- zeit = time.localtime()
- e_czeit_stunde.delete(0, END)
- e_czeit_minute.delete(0, END)
- e_czeit_sekunde.delete(0, END)
- e_czeit_stunde.insert(0, zeit[3])
- e_czeit_minute.insert(0, zeit[4])
- e_czeit_sekunde.insert(0, zeit[5])
- #-----------------
- if thread_stopper == 1:
- return
- if p_start == 0:
- button_start.config(state=DISABLED)
- if rb_var.get() == 0:
- button_start.config(state=DISABLED)
- e_szeit_stunde.config(state=DISABLED)
- e_szeit_minute.config(state=DISABLED)
- e_szeit_sekunde.config(state=DISABLED)
- e_count_minute.config(state=DISABLED)
- e_count_sekunde.config(state=DISABLED)
- if rb_var.get() == 1:
- if e_count_sekunde.get() != "":
- button_start.config(state=NORMAL)
- e_szeit_stunde.config(state=DISABLED)
- e_szeit_minute.config(state=DISABLED)
- e_szeit_sekunde.config(state=DISABLED)
- e_count_minute.config(state=NORMAL)
- e_count_sekunde.config(state=NORMAL)
- if rb_var.get() == 2:
- if e_szeit_stunde.get() != "":
- if e_szeit_minute.get() != "":
- if e_szeit_sekunde.get() != "":
- button_start.config(state=NORMAL)
- e_szeit_stunde.config(state=NORMAL)
- e_szeit_minute.config(state=NORMAL)
- e_szeit_sekunde.config(state=NORMAL)
- e_count_minute.config(state=DISABLED)
- e_count_sekunde.config(state=DISABLED)
- if thread_stopper == 1:
- return
- time.sleep(0.5)
- def komm_zeile():
- global e_shut_var
- if sys.platform.startswith('win'):
- e_shut_var.delete(0, END)
- e_shut_var.insert(0, 'shutdown -s -f -t 10 -c "Der PC wird in 10 Sekunden heruntergefahren!"')
- if sys.platform.startswith('linux'):
- e_shut_var.delete(0, END)
- e_shut_var.insert(0, 'sudo poweroff')
- def setin_time():
- global e_szeit_stunde, e_szeit_minute, e_szeit_sekunde
- zeit = time.localtime()
- e_szeit_stunde.config(state=NORMAL)
- e_szeit_minute.config(state=NORMAL)
- e_szeit_sekunde.config(state=NORMAL)
- e_szeit_stunde.delete(0, END)
- e_szeit_minute.delete(0, END)
- e_szeit_sekunde.delete(0, END)
- e_szeit_stunde.insert(0, str(zeit[3]))
- e_szeit_minute.insert(0, str(zeit[4]))
- e_szeit_sekunde.insert(0, str(zeit[5]))
- e_szeit_stunde.config(state=DISABLED)
- e_szeit_minute.config(state=DISABLED)
- e_szeit_sekunde.config(state=DISABLED)
- def main_window():
- global rb_festzeit, rb_countdown, e_shut_var, rb_var, bg, f1, root, f2, button_start, e_czeit_stunde, e_czeit_minute, e_czeit_sekunde, e_szeit_stunde, e_szeit_minute, e_szeit_sekunde, e_count_minute, e_count_sekunde
- root = Tk()
- root.title("SHUT - F�hrt dich runter!")
- root.geometry("500x500")
- XPOS = 50
- YPOS = 15
- root.geometry("+%d+%d" % (XPOS, YPOS))
- root.protocol("WM_DELETE_WINDOW", exit_request)
- f2 = Frame(root, width=500, height=80, bg=bg)
- f2.place(x=0, y=0)
- f1 = Frame(root, width=500, height=420, bg=bg)
- f1.place(x=0, y=80)
- #--Objekte f2--
- photo_head = PhotoImage(file="shut.GIF")
- label_photo = Label(f2, image=photo_head, bg=bg)
- label_photo.place(x=0, y=0)
- menubar = Menu(root)
- filemenu = Menu(menubar, tearoff=0)
- filemenu.add_command(label="Beenden", command=exit_request)
- menubar.add_cascade(label="Optionen", menu=filemenu)
- helpmenu = Menu(menubar, tearoff=0)
- helpmenu.add_command(label="Version 1.0.2", command=version)
- helpmenu.add_command(label="Info", command=get_info)
- menubar.add_cascade(label="Hilfe", menu=helpmenu)
- root.config(menu=menubar)
- #--Objekte f1--
- label_shutvar = Label(f1, text="Shutdown Komandozeile:", bg=bg, font="Lucida_Console 15")
- label_computerzeit = Label(f1, text="Computerzeit:", bg=bg, font="Lucida_Console 15")
- label_shutdownzeit = Label(f1, text="Shutdownzeit:", bg=bg, font="Lucida_Console 15")
- label_countdownzeit = Label(f1, text="Countdownzeit:", bg=bg, font="Lucida_Console 15")
- label_doppelpunkt_1 = Label(f1, text=":", bg=bg, font="Lucida_Console 15")
- label_doppelpunkt_2 = Label(f1, text=":", bg=bg, font="Lucida_Console 15")
- label_doppelpunkt_3 = Label(f1, text=":", bg=bg, font="Lucida_Console 15")
- label_doppelpunkt_4 = Label(f1, text=":", bg=bg, font="Lucida_Console 15")
- label_minuten = Label(f1, text="Minuten", bg=bg, font="Lucida_Console 10")
- label_sekunden = Label(f1, text="Sekunden", bg=bg, font="Lucida_Console 10")
- rb_var = IntVar()
- rb_countdown = Radiobutton(f1, text="Countdown", variable=rb_var, value=1, bg=bg, font="Lucida_Console 10")
- rb_festzeit = Radiobutton(f1, text="Festzeit", variable=rb_var, value=2, bg=bg, font="Lucida_Console 10")
- e_shut_var = Entry(f1, bg="#00FF00", font="Lucida_Console 10", width=60, fg="#0000FF")
- e_czeit_stunde = Entry(f1, bg=bg, font="Lucida_Console 10", width=2, fg="#FF0000")
- e_czeit_minute = Entry(f1, bg=bg, font="Lucida_Console 10", width=2, fg="#FF0000")
- e_czeit_sekunde = Entry(f1, bg=bg, font="Lucida_Console 10", width=2, fg="#FF0000")
- e_szeit_stunde = Entry(f1, bg=bg, font="Lucida_Console 10", width=2)
- e_szeit_minute = Entry(f1, bg=bg, font="Lucida_Console 10", width=2)
- e_szeit_sekunde = Entry(f1, bg=bg, font="Lucida_Console 10", width=2)
- e_count_minute = Entry(f1, bg=bg, font="Lucida_Console 10", width=2)
- e_count_sekunde = Entry(f1, bg=bg, font="Lucida_Console 10", width=2)
- button_start = Button(f1, text="START", command=start, font="Lucida_Console 10", width=63)
- button_time = Button(f1, text="Aktuelle Zeit einsetzen", command=setin_time, font="Lucida_Console 8", width=30)
- # Bild
- #----Place Handlungen---
- label_shutvar.place(x=0, y=10)
- e_shut_var.place(x=30, y=35)
- label_computerzeit.place(x=0, y=80)
- label_shutdownzeit.place(x=0, y=140)
- label_countdownzeit.place(x=0, y=200)
- e_czeit_stunde.place(x=150, y=80)
- label_doppelpunkt_1.place(x=170, y=80)
- e_czeit_minute.place(x=190, y=80)
- label_doppelpunkt_2.place(x=210, y=80)
- e_czeit_sekunde.place(x=230, y=80)
- #-
- e_szeit_stunde.place(x=150, y=140)
- label_doppelpunkt_3.place(x=170, y=140)
- e_szeit_minute.place(x=190, y=140)
- label_doppelpunkt_4.place(x=210, y=140)
- e_szeit_sekunde.place(x=230, y=140)
- button_time.place(x=260, y=140)
- #-
- e_count_minute.place(x=160, y=200)
- label_minuten.place(x=180, y=200)
- e_count_sekunde.place(x=240, y=200)
- label_sekunden.place(x=260, y=200)
- #-
- rb_countdown.place(x=10, y=280)
- rb_festzeit.place(x=10, y=260)
- #-
- button_start.place(x=0, y=360)
- #--Inaktivierungen/Nullsetzen--
- thread.start_new_thread(loopback_abfragen, (0, 0))
- komm_zeile()
- set_e_to_null()
- inaktivate_all()
- #----Abschluss---
- f1.mainloop()
- main_window()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement