Tech-Ecke / Delphi Inhalt / Anwendung starten und auf deren Ende warten |
|
Anwendung starten und auf deren Ende
warten
Wenn man aus Delphi heraus eine Anwendung startet, so wird der Programmcode nach dem Start mittels ShellExecute munter weitergeführt. Möchte man, dass das Programm anhält bis die Anwendung beendet ist, so gibt es hierfür die Funktionen ShellExecuteAndWait.
Ausführen:
Alternative: Eine weitere Möglichkeit bietet
die Prozess-ID. Jedes laufende Programm bekommt von Windows eine
eindeutige ID (Integer) zugewiesen, welche man über den
Exe-Namen abfragen kann. Fragt man nach einer Anwendung die
gerade nicht aktiv
ist, so wird eine
0 zurückgegeben.
Hat man die oben gezeigt Funktion zum bestimmen der ProcessID in seinem Programm eingebunden, so lässt sich mit folgendem Code das eigene Programm solange anhalten, bis die gestartete Anwendung beendet wurde: Beispiel: - ShellExecute erfordert ShellAPI in uses!
Hinweis!: Diese Möglichkeit birgt jedoch auch eine
Falle. Ist die Anwendung vor dem Start durch das eigene Programm
bereits aktiv und wird dadurch zweimal geöffnet, so wird nach
dem Schließen der zweiten Anwendung die ProcessID auch nicht
0 sein, da ja noch ein
Prozess aktiv ist. Genauso kann es sein, das während des Wartens
diese Anwendung ein zweites mal geöffnet wird. Somit währe die
ProcessID nach dem schließen der zweiten Anwendung auch nicht
0.
|
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 01.01.2009]