Etwas zu einem Zeitpunkt ausführen? [gelöst]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Etwas zu einem Zeitpunkt ausführen? [gelöst]

Beitrag von gekkonier »

Prinzipiell hätte man ja die Möglichkeit mittels Date() zu prüfen, ob die Zeit passt um erst dann etwas auszuführen. Mit meinem derzeitigen Wissen über PB müsste ich in einer Schleife dauernd prüfen, "obs schon so weit ist"...

Gibt es da auch eine andere Möglichkeit, also einen Befehl oder eine Technik mit der ich sagen kann, dass z.B. um 12:15, 12:30 und um 12:45 etwas ausführen kann? Ich könnte natürlich die Zeit die noch bis dahin bleibt ausrechnen und dann ein Delay setzten.
Zuletzt geändert von gekkonier am 10.06.2008 09:16, insgesamt 1-mal geändert.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Wie wärs mit einem geplanten Task, aus der Windows Systemsteuerung?
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Aus deinem Programm raus:
Ich würds mit einer Schleife machen, die alle x Sekunden oder Minuten (je nachdem, wie genau du das haben willst) das aktuelle Datum und die Uhrzeit prüft. Wichtig ist, das du hierfür >= verwendest und nicht nur >, falls du den Zeitpunkt nicht genau triffst.

Extern vom Betriebssystem aus:
Ansonsten gibts unter Linux z.B. den crontab und unter Windows die "Geplanten Tasks" in der Systemsteuerung (evtl. über API steuern) um Programme zu einem bestimmten Zeitpunkt zu starten.
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Das hab ich mir schon angekuckt, allerdings kann ich den nur Daily, Weekly, Monthly und so weiter einstellen, da geht nix mit kleineren Schritten.
Deshalb wollte ich mir quasi ein "Cron" nachbauen, das in der Zeiteinstellung wesentlich flexibler ist. Meine Frage diesbezüglich wäre halt, ob es Boardmittel in PB gibt, mit denen man zeitgesteuerte Abläufe anders als mit einem Loop bauen kann. Oder ist es eh der richtige Weg das so zu tun?
Also einen Loop bauen, der alle Nase lang die Zeit überpüft?

Edit: Also meint ihr eine Schleife wäre eh passend ;)

Merci, somit erledigt!
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

gekkonier hat geschrieben:Also einen Loop bauen, der alle Nase lang die Zeit überpüft?

Edit: Also meint ihr eine Schleife wäre eh passend ;)
Denke ich auch, nur statt Nase würde ich Minuten nehmen. :wink: Evt. reicht auch alle 5 Minuten ein Loop.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich würde bei Programmstart mal das komplette DATE prüfen,
aber daraus kann man dann ableiten, wann man überhaupt das nächste mal prüfen müßte.

welche oberfläche hat denn dein Progi überhaupt?
ne normale event-schleife von nem Fenster?
...oder könntest du es auch in ein Delay(2147483647) hängen...

auf jeden fall kannst du die prüfung sehr lange aussetzen,
wenn du bei Programmstart ermittelst,
dass die Alarmzeit noch drei Monate entfernt ist...
Zuletzt geändert von Kaeru Gaman am 10.06.2008 10:29, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag von Shardik »

gekkonier hat geschrieben: Das hab ich mir schon angekuckt, allerdings kann ich den nur Daily, Weekly, Monthly und so weiter einstellen, da geht nix mit kleineren Schritten.
Sparkie hat im englischen Forum gezeigt, wie man mit RunProgram() über den AT-Befehl z.B. den Rechner (Calculator) startet. Die Startzeit kann man dabei minuten- oder sekundengenau angeben. Weitere Einstellmöglichkeiten erhält man durch Eingabe von "Help AT" in einem Konsolenfenster. Hier ist der Link zu Sparkies Beispiel:
http://www.purebasic.fr/english/viewtop ... 23&start=6
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Kaeru Gaman hat geschrieben:ich würde bei Programmstart mal das komplette DATE prüfen,
aber daraus kann man dann ableiten, wann man überhaupt das nächste mal prüfen müßte.
Und was ist wenn der Rechner zwischendurch mal in Standby geht, ich denke das würde nicht funzen.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wieso... der standby wird doch auch registriert.
muss ich also auch drauf reagieren können.

ich postuliere einfach mal:
auf einem System, dass einen Standby kann, gibt es auch zwei Systemmessages,
die Auslösen und Beenden dieses Zustandes anzeigen.

dadurch muss man bei meinem Ansatz halt eine zusätzliche Möglichkeit einbaun,
wenn man das überhaupt braucht/will,
aber grundsätzlich ist das kein Argument dagegen.

ich will immer noch wissen, worauf er überhaupt hinaus will.
die Hintergrundinfos sind zu dürftig, um einen sinnvollen Ansatz vorzuschlagen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Kaeru Gaman hat geschrieben:ich will immer noch wissen, worauf er überhaupt hinaus will.
die Hintergrundinfos sind zu dürftig, um einen sinnvollen Ansatz vorzuschlagen.
Nuja, wenn ich das richtig verstanden habe, will er etwas fexibleres als den Taskmanager, der eine Aktion auch mehrfach zu verschiedenen Uhrzeiten am Tag ausführen kann. Wobei man auch das mit dem Taskmanager kann, nämlich einfach durch Anlegen mehrerer Task für einen Tag. :mrgreen:

Wenn ich mich nicht irre. :wink:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten