![]() |
ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Hallo zusammen,
ist es möglich von einem externen Programm welches ich mit ShellExecute aufgerufen habe die Informationen zu erhalten, ob es nun geöffnet wurde, bzw. ob es wieder geschlossen wurde ? Wenn Nein -> Gibt es da andere Möglichkeiten ? Gruss Holger |
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Willst Du auf die Beendigung warten, oder wie ist die Frage zu verstehen? ShellExecute liefert Dir zumindest entweder einen Fehlercode (im Bereich bis einschl. 32) oder das Handle der erzeugten Instanz zurück. Willst Du aber auf die Beendigung warten, musst Du auf z.B. CreateProcess oder ShellExecuteEx ausweichen.
|
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Moin Detlef,
eine kleine Korrektur: Die Funktion liefert nur einen Fehlercode (<= 32), aber kein Instanzenhandle im Erfolgsfalle. Bei einem Rückgabewert > 32 kann man nur sagen, dass der Aufruf erfolgreich war. |
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Hast ja Recht, das ist nur eine Fake-Instanz zur Abwärtskompatibilität, steht aber auch so in der Hilfe:
Zitat:
|
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Kann ich direkt nach dem ShellExecute-Aufruf den Fehlercode auslesen, da das externe Programm auch einige Zeit braucht bis es gestartet ist. Und wie genau mache ich die Abfrage ?
Die Sache mit ShellExecuteEx würde mich auch interressieren. Wie funktioniert das ? Ist danach das Delphi-Programm "eingefroren" bis das externe Programm wieder geschlossen ist ? Wie funktioniert da der Aufruf und das Abfragen der Parameter ? MfG Holger Wächter |
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
ShellExecute ist ja eine Funktion, da kannst Du also direkt nach dem Aufruf den Rückgabewert abgreifen. Zu ShellExecuteEx und Warten kannst Du Dir
![]() |
AW: ShellExecute -> Rückmeldung ob Programm geöffnet oder geschlossen ist.
Zitat:
Delphi-Quellcode:
var
ReturnValue: Integer; begin ReturnValue := ShellExecute(Handle, 'open', 'explorer.exe', nil, nil, 0); if ReturnValue <= 32 then ShowMessage('Fehler mit Code ' + IntToStr(ReturnValue) + '!') else ShowMessage('ShellExec erfolgreich ausgeführt.'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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