pascal87 Geschrieben 4. Oktober 2005 Teilen Geschrieben 4. Oktober 2005 Ich bin auf der Suche nach einem Befehl o.ä. der in einer .cmd Datei eine exe aufruft und nach Beendigung der exe wieder schließt, es soll also kontrolliert werden, ob die exe Datei fertig ist, die .cmd Datei soll nicht abebrochen werden , also nicht zum Beispiel "stop 10:32". Wie kann ich es schaffen, dass eine .exe nach einer bestimmten Laufzeit beendet wird? Gibt es sowas überhaupt? Es handelt sich um einen XP Client Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 4. Oktober 2005 Teilen Geschrieben 4. Oktober 2005 Wie kann ich es schaffen, dass eine .exe nach einer bestimmten Laufzeit beendet wird? Gibt es sowas überhaupt? Es handelt sich um einen XP Client Es gibt dir Möglichkeit, mit der Win API ein Programm zu starten und auf dessen Ende zu warten. Das geht über eine Schleife, da kann man also dann auch die Zeit prüfen. Beenden müsste auch gehen. Kann ich dir im Moment aber gar nich auswendig sagen, heute is der erste Tag nach dem Urlaub CreateProcess is der API-Befehl (zum Starten zumindest). Ob es sowas irgendwo gibt... keine Ahnung. Kannst es dir ja selber programmieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pascal87 Geschrieben 4. Oktober 2005 Autor Teilen Geschrieben 4. Oktober 2005 Boahh erstmal thx für die wirklich rasante Antwort! Wenn du gerade aus dem Urlaub kommst ist das klar, ich hab dafür auch noch ein paar Tage Zeit, wäre super, wenn du es postest, wenn dir dazu noch was einfällt, ich habe mich mit der Win API auch noch sogut wie garnicht auseinander gesetzt, bei dir als FIAE wird das wohl anders sein... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
janlutmeh Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 Schon probiert das ganze als geplanten Task zu starten und dann Laufzeitgesteuert wieder zu beenden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 Also hier hab ich mal nen Delphicode um sowas zu tun (da es sich vorallem um API aufrufe handelt, wird es leicht umzusetzen sein): procedure StartProg(aPrg: String; aTimeOut: Integer); var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; TermStatus: LongWord; begin FillChar(StartupInfo, sizeOf(TStartupInfo), 0); StartupInfo.cb:= SizeOf(TStartupInfo); //*** Programm starten if CreateProcess(nil, PChar(aPrg), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then begin //*** Warten bis Programm beendet ist, aTimeOut = Millisekunden die //*** maximal gewartet werden sollen WaitForSingleObject(ProcessInfo.hProcess, aTimeOut); //*** Prüfen ob Programm noch läuft GetExitCodeProcess(ProcessInfo.hProcess, TermStatus); //*** Programm beenden if TermStatus = STILL_ACTIVE then TerminateProcess(ProcessInfo.hProcess, 0); //*** Handle wieder freigeben CloseHandle(ProcessInfo.hProcess); end; end; Alles ab //*** Prüfen ob Programm noch läuft hab ich noch nicht probiert, das ist alles nur theoretisch. Auch TerminateProcess ist nicht der bevorzugte Weg, ich hab aber auf die schnelle keinen anderen Weg gefunden (bzw. hab keine Ahnung, wie ich ExitProcess einsetze). So als Denkanstoss sollte das aber reichen hoff ich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pascal87 Geschrieben 5. Oktober 2005 Autor Teilen Geschrieben 5. Oktober 2005 danke! Ja, gut, dass das nen Delphicode ist, da komme ich mit klar... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.