Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: CreateProcess und mehrere Konsolenbefehle

  Alt 1. Jul 2008, 12:45
Das Try-Except halte ich für sinnlos, streiche mal das Try sowie alles von Except bis zum folgenden End.

Zitat:
Erst wenn der Rückgabewert von CreateProcess true ist, ist der Befehl oder die Anwendung abgearbeitet.
Der Rückgabewert von CreateProcess wird natürlich nur einmal gesetzt. Er gibt nur an, ob das Erstellen erfolgreich war (false ist er z.B., wenn die Datei nicht existiert).
Das eigentliche Warten findet in WaitForSingleObject statt. Ein Prozess-Handle ist nämlich genau dann signalisiert, wenn der Prozess beendet ist. INFINITE bedeutet, dass es keinen Timeout gibt.
Diese Funktion würde ich nicht in einem GUI-Thread aufrufen. Falls du das tun willst, solltest du statt INFINITE einen kurzen Timeout setzen, beispielsweise 200 (Millisekunden) (das bewirkt, dass die Funktion zurückkehrt, wenn der Prozes beendet wurde oder der Timeout abgelaufen ist), oder gleich auf MsgWaitForMultipleObjects umsteigen, da das ermöglicht, Nachrichten parallel abzuarbeiten. Andernfalls kann es passieren, dass die Anwendung einfriert.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat