Wie kann man mit dem Modul time eine Software zu einem bestimmten Zeitpunkt starten lassen?
Danke
modul time
-
- User
- Beiträge: 31
- Registriert: Samstag 8. April 2006, 17:10
- Wohnort: lachen (schweiz)
unter linux geht des am besten, indem du mit cron das programm dann starten lässt
ob das mit dem time modul so praktisch ist weiß ich nicht, dazu müsste dein programm ja die ganze zeit laufen, um dann seine aktion auszuführen
ob das mit dem time modul so praktisch ist weiß ich nicht, dazu müsste dein programm ja die ganze zeit laufen, um dann seine aktion auszuführen
Es sollte recht einfach mit der sleep-Methode des time-Moduls gehen. Du brauchst lediglich die Differenz der geplanten Startzeit und der aktuellen Zeit in Sekunden als Parameter übergeben. Das Modul schläft dann wirklich und verbraucht kaum Resourcen. Nach sleep() kann das Modul dann erledigen, was immer es soll.
MfG
HWK
MfG
HWK
Ich hab noch ne andere Möglichkeit anzubieten, so mach ich es jedenfalls:
1.Du trägst dein Programm in die Registry unter Run ein:
2.Du überprüfst in einer Endlossschleife die aktuelle Zeit und wenn die Zeit >= deiner geplanten Zeit ist, wird die Schleife verlassen und ruft deine anderen Funktionen auf:
Das ganze könnte so aussehen:
1.Du trägst dein Programm in die Registry unter Run ein:
Code: Alles auswählen
def registry():
key = winreg.CreateKey(
winreg.HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run"
)
winreg.SetValueEx(key, "Programm", None, winreg.REG_SZ, "C:\Python24\Programm.py")
winreg.CloseKey(key)
Code: Alles auswählen
def start_program():
while True:
ctime()
if ctime>='Mon Sep 10 16:00:00 2006': #Je nachdem muss geändert werden!
break
andere Funktion()
Code: Alles auswählen
from time import ctime
import _winreg as winreg
def registry():
key = winreg.CreateKey(
winreg.HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run"
)
winreg.SetValueEx(key, "Programm", None, winreg.REG_SZ, "C:\Python24\Programm.py")
winreg.CloseKey(key)
def test():
x=ctime()
f=open('C:\\test.txt', 'w')
f.write('Mal schauen ob es geklappt hat')
f.write(x)
f.close()
def start_program():
while True:
ctime()
if ctime>='Mon Sep 10 16:00:00 2006': #Je nachdem muss geändert werden!
break
test()
mfg
Thomas :-)
Thomas :-)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Da würde ich aber ein time.sleep() einbauen, sonst wird mitunter mehrere hunderte Male in der Sekunde die Zeit abgefragt was unnötig Prozessorzyklen kostet.Python Master 47 hat geschrieben:Code: Alles auswählen
def start_program(): while True: ctime() if ctime>='Mon Sep 10 16:00:00 2006': #Je nachdem muss geändert werden! break andere Funktion()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hallo Python Master 47
In HKEY_LOCAL_MACHINE schreiben gibt Abzüge in der B-Note.
Entweder HKEY_CURRENT_USER, wenns benutzerbezogen sein soll, oder gleich AT verwenden, wenn das Programm unabhängig vom Benutzer laufen soll. Dann entfällt auch das aktive Warten (nochmal Abzüge... )
Gruß, der Monk
In HKEY_LOCAL_MACHINE schreiben gibt Abzüge in der B-Note.
Entweder HKEY_CURRENT_USER, wenns benutzerbezogen sein soll, oder gleich AT verwenden, wenn das Programm unabhängig vom Benutzer laufen soll. Dann entfällt auch das aktive Warten (nochmal Abzüge... )
Gruß, der Monk
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi lukasmarti!lukasmarti hat geschrieben:eine Software zu einem bestimmten Zeitpunkt starten lassen?
Über das Betriebssystem gibt es geeignete Mittel. Wenn du aber ein Python-Programm ständig laufen lassen möchtest und während dieser Zeit etwas zu einem bestimmten Zeitpunkt ausführen lassen möchtest, dann bietet sich das Python-Modul ``sched`` an.
http://docs.python.org/lib/module-sched.html
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.