Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Anwendung zeitversetzt starten
Bob Murphy - Do 05.11.09 12:55
Titel: Anwendung zeitversetzt starten
Moin Moin,
ich habe ein kleines Tool was seinen Dienst erst ab einer bestimmten Uhrzeit verrichten soll.
Das Problem ich gehe meist um 23Uhr schlafen, vorher starte ich noch schnell das Tool, jetzt soll das Tool aber erst zb um 24Uhr anfangen zu arbeiten.
Einfach einen Timer auf 1 Stunde einstellen möchte ich nicht. Auch möchte ich den Taskplaner oder wie das Ding heißt nicht benutzen. Ich stell mir das so vor das man zb in einen Editfeld die gewünschte Uhrzeit eingibt und das Programm dem entsprechend anfängt zu arbeiten.
Wie setzt man sowas geschickt in die Tat um?
LG Bob
kalmi01 - Do 05.11.09 13:06
Hi,
Du kannst doch von Deiner Ziel-Zeit (z.B. 23:45) die aktuelle Zeit (z.B. 19:21) abziehen und anschliessen Dein Prg so lange mit sleep schlafen schicken.
Fighter#1 - Do 05.11.09 14:21
Naja, also gegen einen Timer, der Sekundenweise läuft spricht ja ansich nix!
So wie kalmi sagt, du berechnest wieviele Sekunden dein Programm warten muss, zB Timestamp von der Startzeit - aktuellen Timestamp.
Und dieser Wert wird bei jedem Timer aufruf um 1 Sekunde abgezogen, bei 0 ist dann die Zielzeit erreicht und du kannst den Funktionsaufruf ausführen.
Sleep ist nicht zu empfehlen, da das Programm zu der Sleep Zeit auf nichts reagiert;)
Critter - Do 05.11.09 14:40
Hi,
Fighter#1 hat folgendes geschrieben : |
Naja, also gegen einen Timer, der Sekundenweise läuft spricht ja ansich nix!
So wie kalmi sagt, du berechnest wieviele Sekunden dein Programm warten muss, zB Timestamp von der Startzeit - aktuellen Timestamp.
Und dieser Wert wird bei jedem Timer aufruf um 1 Sekunde abgezogen, bei 0 ist dann die Zielzeit erreicht und du kannst den Funktionsaufruf ausführen. |
warum dieses Rumgerechne? Was spricht denn dagegen im Timer event einfach mit
now die Aktuelle Uhrzeit abzufragen und los zu legen wenn diese
>= der Startzeit ist (und der heutige Lauf noch nicht stattgefunden hat)?
critter
Bob Murphy - Do 05.11.09 17:03
Vielen Dank für eure Antworten.
Hab mich jetzt an Critter´s Gedankenanstoß gehalten....
LG Bob
der organist - Do 05.11.09 20:21
ansonsten kannst du auch die Zeitdiffenrenz errechnen, und dann als Timerintervall eingeben. Und in die Timerprozedur schreibst du naja, eben deinen Code.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!