Tkinter Fenster nach 5 Minuten automatisch schliessen
Verfasst: Montag 12. März 2012, 14:48
Hallo zusammen,
Ich habe ein Python-Script geschrieben, welches MAC-Adressen aus einer Text-Datei ausliest und alle unbekannten in einem Tkinter Fenster meldet. Das Script starte ich alle 5 Minuten mit einer Windows Aufgabe neu.
Das Problem: Wenn das Tkinter Fenster mit den unbekannten MAC-Adressen erscheint, kann das Script erst wieder ausgeführt werden wenn das Fenster geschlossen wird. Ich möchte aber das Fenster nicht jedesmal von Hand schliessen sondern, dass es automatisch nach einer Zeit von etwa 5 Minuten geschlossen wird. Nur habe ich keine Ahnung wie ich das lösen will..
Ich bin für jede Hilfe dankbar!!
Der Code sieht so aus (nicht ganzer Code):
Ich habe ein Python-Script geschrieben, welches MAC-Adressen aus einer Text-Datei ausliest und alle unbekannten in einem Tkinter Fenster meldet. Das Script starte ich alle 5 Minuten mit einer Windows Aufgabe neu.
Das Problem: Wenn das Tkinter Fenster mit den unbekannten MAC-Adressen erscheint, kann das Script erst wieder ausgeführt werden wenn das Fenster geschlossen wird. Ich möchte aber das Fenster nicht jedesmal von Hand schliessen sondern, dass es automatisch nach einer Zeit von etwa 5 Minuten geschlossen wird. Nur habe ich keine Ahnung wie ich das lösen will..
Ich bin für jede Hilfe dankbar!!
Der Code sieht so aus (nicht ganzer Code):
Code: Alles auswählen
if (len(untrusted) > 0) and (len(unknownlog) > 0):
datenstr = ""
for entry in unknownlog:
t = time.strftime("%d.%m.%Y um %H:%M:%S Uhr")
timestamp = str(time.time())
daten = (timestamp,t,entry[0],entry[1],entry[2],entry[3],entry[4],entry[5],entry[6],"not trusted")
datenstr += "\n""\nIP-Address:\t"+entry[0]+"\nHost-Name:\t"+entry[1]+"\nMAC-Address:\t"+entry[2]+"\nResponse Time:\t"+entry[3]+"\nLogged User:\t"+entry[4]+"\nOperating System:\t"+entry[5]+"\nNIC-Vendor:\t"+entry[6]+"\n"
csvwriter1.writerow(daten)
inf = "ACHTUNG!! Es wurde fremde Hardware erkannt!"
class App:
def __init__(self, master):
lab=Label(root,text=inf,font=("Arial", 16))
lab.pack()
self.label = Label(root,justify=LEFT,padx=20,text=t,font=("Arial", 11))
self.label.pack()
self.label = Label(root,justify=LEFT,padx=10,text=datenstr,font=("Arial", 11))
self.label.pack()
frame = Frame(master)
frame.pack()
self.slogan = Button(frame,justify=LEFT,padx=10,
text="Mehr Informationen in Netscan",font=("Arial", 10),
command=self.start_tool)
self.slogan.pack(side=LEFT)
self.slogan = Button(frame,justify=LEFT,padx=10,
text="Log-File",font=("Arial", 10),
command=self.start_log)
self.slogan.pack(side=LEFT)
self.button = Button(frame,justify=LEFT,padx=10,
text="Close", fg="red",font=("Arial", 10),
command=root.destroy)
self.button.pack(side=LEFT)
def start_tool(self):
import os
os.startfile("netscan.exe")
def start_log(self):
import os
os.startfile("log.txt")
logfile2.close()
root = Tk()
root.title("Fremde Hardware entdeckt!")
app = App(root)
root.mainloop()