ShellExecuteandWait - Status abfragen
Hallo alle miteinander,
wie kann ich bei der ShellExecuteandWait-Routine überprüfen wie das ausgeführte Programm beendet wurde, also ob es vom User abgebrochen wurde, aufgrund eines Fehlers abgebrochen ist oder weil der z.B. Kopiervorgang einfach abgeschlossen ist?
Delphi-Quellcode:
Danke für im Vorhinein für alle Tipps und Ratschläge,
function ShellExecute_AndWait(FileName: string; Params: string): boolean;
var exInfo: TShellExecuteInfo; Ph: DWORD; begin Result := True; Try FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess else begin ShowMessage(SysErrorMessage(GetLastError)); Result := False; Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); Except Result := False; Exit; End; end; Liebe Grüße |
Re: ShellExecuteandWait - Status abfragen
Hi,
Hast du schon eine Antwort gefunden? |
Re: ShellExecuteandWait - Status abfragen
Zitat:
Delphi-Quellcode:
Bezüglich den Werten oder mit welcher Funktion ich dies am besten machen könnte, steht leider nichts in der msdn.
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages; LG |
Re: ShellExecuteandWait - Status abfragen
Du könntest möglicherweise statt mit WaitForSingleObject mit GetExitCodeProcess arbeiten. Das hilft dir aber nur weiter wenn das aufrufende Progeramm wirklich verschiedene Exit-Codes liefert. Sonst fällt mir dazu auch nichts ein.
|
Re: ShellExecuteandWait - Status abfragen
Nun ja...das ist sicher ein Anfang, jetzt müsste ich nur herausfinden ob dies auf das Windows Servicepack bzw. auf ein Hotfix zutrifft. Dazu werde ich ja hoffentlich doch noch etwas finden.
Danke auf jeden Fall. LG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz