[Delphi] programm pausieren

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von naz, 25. März 2007 .

  1. 25. März 2007
    programm pausieren

    hi..
    durch ein buttonklick öffne ich bei meinem programm C:\test.exe
    kann ich mein programm solange pausieren lassen biss C:\test.exe sich geschlossen hat??
    wenn ja wie?
    komme nicht drauf
     
  2. 25. März 2007
    AW: programm pausieren

    Hmm, vielleicht hilft dir eine Schleife und eine If Abfrage weiter. Die If Abfrage prüft ob die Datei noch offen ist, und solange die Datei noch offen ist läuft die Schleife weiter.
     
  3. 26. März 2007
    AW: programm pausieren

    hmm das ist eigendlich logisch aber.. is das nicht ein wenig ressorcefressend
    ich mein mein programm das sich öffnet spielt ein film ab ^^.. und dauert schon so 1-2 stunden biss der sich schließt
     
  4. 26. März 2007
    AW: programm pausieren

    Ich kann kein Delphi, aber das würd ich auch sagen... wenn das programm 2h lang im zehntel-sekunden-takt fragt ob die .exe noch an is, dann wird die cpu Auslastung drastisch erhöht werden...
    Gibts bei Delphi vlt ne art call-funktion auf Batch-art?! Ansonsten würde mir auch nichts sinnvolles einfallen..

    GreetZ, ~Br4inP4in~
     
  5. 26. März 2007
    AW: programm pausieren

    Hi,

    entweder der Thread hilft dir weiter oder die Funktion `Delay´.

    Gruss,
    MArc
     
  6. 26. März 2007
    AW: programm pausieren

    Ich kann zwar kein Delphi, aber so würde ich es machen:

    1. Prozess mit CreateThread API oder was auch immer Starten (hauptsache du bekommst die Process ID)
    2. Dann einfach immer in einer Schleife den ExitCode mit der GetExitCodeProcess API abfragen, und solange STILL_ACTIVE (is ne Konstante, glaub 0x103) bei rauskommt läuft das Prog noch.

    mfg r90
     
  7. 26. März 2007
    AW: programm pausieren

    Hi,

    aber ist das nicht dasselbe wie schon in den ersten Postings vorgeschlagen? Und wegen der CPU Auslastung scheinbar nicht die beste Methode?

    @naz
    Hast du dir das mit der Delay Funktion schon angesehen, würde mich mal interessieren?
     
  8. 26. März 2007
    AW: programm pausieren

    du kannst ganz einfach einen Thread starten, der alle 5 sekunden über das WinApi überprüft, ob dein Programm noch gestartet ist.
     
  9. 26. März 2007
    AW: programm pausieren

    Home - Delphi-Treff
    Hab ich hier irgendwo ma auf der seite unter tipps gefunden!!!
    war relativ einfach...
     
  10. 26. März 2007
    AW: programm pausieren

    thx für eure antowrten.. hab aber leider grad keine zeit das auszuprobieren.. melde mich sobald ich es getestet hab
     
  11. 26. März 2007
    AW: programm pausieren


    die Delay-Funktion macht nichts anderes.
    Die Schleifen-Lösung ist nicht Prozesslastig, wenn du ein Sleep einbaust und zwischendurch auch regelmäßig Application.ProcessMessages einbaust.
    Das Sleep muss dabei nicht lange sein, 100 Millisekunden sollten reichen.

    Noch sauberer wäre es, dass ganze in einen Thread auszulagern und diesen zusätzlich eine geringe Priorität zuzuordnen. Weiterhin "hängt" dann auch das Hauptfenster nicht mehr.

    In diesem Falle kommt die Schleife dann direkt in den Thread. Dann brauchste nur noch eine Callback-Funktion sobald der Thread fertig ist und hast es sauber gelöst. Also nicht sowas anfangen wie das Prüfen im Hauptprogramm, ob der Thread noch läuft oder ähnliches.
     
  12. 27. März 2007
    AW: programm pausieren

    War mir jetzt zu faul den Link rauszusuchen
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.