![]() |
Status eines aufgerufenen Programms abfragen
Mahlzeit !
ich möchte aus meinem Delphi-Programm heraus ein anderes aufrufen (Exe-Datei über Shellexecute oder so). Wenn ich das externe Programm in der Eingabeaufforderung einzeln per Befehlszeile aufrufe teilt es mir einen Status mit, bzw gibt eine Zeile zurück, wenn es fertig ist. Kann ich aus Delphi heraus die Rückgabewerte abfragen und darauf reagieren? Das Programm soll nämlic_ im Batch mehrfach hintereinander aufgerufen werden, aber immer erst dann, wenn es ferigt ist. |
Re: Status eines aufgerufenen Programms abfragen
Hi Anthauri,
wenn du die exe über ShellExecute aufrufst, erhälst du ein Handle als Rückgabewert: Die OH schreibt: If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application. Sobald du das Handle hast, kannst du auch abfragen ob es noch gültig ist (die Funktion weiß ich leider nicht :oops:). Sobald das Handle nicht mehr existiert kannst du die Anwendung nochmal starten usw. Greetz alcaeus |
Re: Status eines aufgerufenen Programms abfragen
Vielleicht solange GetPriorityClass(handle) abfragen bis die Funktion 0 zurückgibt ( -> Prozess existiert nicht mehr).
Oder vielleicht WaitForSingleObject(handle, INFINITE)? Vielleicht klappt das ja... |
Re: Status eines aufgerufenen Programms abfragen
Moin Anthauri,
such' hier mal nach ![]() ![]() Da solltest Du, u.a. in der Codelibrary, fündig werden. @alcaeus: Ich stelle mit Erschrecken fest, dass der bei D7 mitglieferte Auszug aus dem PSDK immer noch veraltet ist. ![]() |
Re: Status eines aufgerufenen Programms abfragen
Zitat:
Greetz alcaeus |
Re: Status eines aufgerufenen Programms abfragen
Moin alcaeus,
solange es sich um die Delphi-Hilfe handelt, ist es ja kein Problem, erst wenn die Sachen dran sind, die sich mit der Windows API beschäftigen solltest Du auf das MSDN ausweichen, bzw. Dir mal das PSDK herunterladen. |
Re: Status eines aufgerufenen Programms abfragen
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz