Ausgewählte Artikel zur Programmierung mit Delphi

Werner Voigt

 für 


WinExecAndWait

Autor: Dipl.-Math. Werner Voigt

veröffentlicht in Toolbox
Copyright 2003 © Werner Voigt und Toolbox
Bitte beachten Sie auch die Hinweise zur kommerziellen Nutzung

Problem:

Ein DOS-Programm starten und auf seine Beendigung warten

Lösung:

In einem Quelltext von Roman Puls (Programm Finder) im PC-Magazin 1/2000 ist die Lösung zum Warteproblem.

Es gibt in der Windows-API zum Warten auf bestimmte Ereignisse die Funktion WaitForSingleObject. Man muß ihr nur das im Parameter lpProcessInformation von CreateProcess angegebene Handle hProcess und eine Zeitspanne, die man längstens warten will übergeben. Dann liefert WaitForSingleObject die Aussage, ob das Zeitintervall abgelaufen ist oder der Prozeß endete.

WaitForSingleObject wartet auf sehr effektive Weise, sodaß nur wenig CPU-Leistung verbraucht wird. Dies wird in der Windows-SDK-Hilfe gut beschrieben. Bei dieser Kombination aus CreateProcess und WaitForSingleObject wird ganz nebenbei das entsprechende Fenster geschlossen.

Das Beispielprogramm startet ein frei zu wählendes (DOS-)Programm ohne Angabe irgendwelcher Parameter und mißt dessen Laufzeit in Schritten von 100ms.

zurückzurück
Copyright © 2003 by  EDVoigt  (Werner Voigt).