Einzelnen Beitrag anzeigen

Lord_Stifterl

Registriert seit: 13. Dez 2002
Ort: Wien
175 Beiträge
 
Turbo Delphi für Win32
 
#1

ShellExecuteandWait - Status abfragen

  Alt 20. Okt 2004, 15:56
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:
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;
Danke für im Vorhinein für alle Tipps und Ratschläge,

Liebe Grüße
Alex
  Mit Zitat antworten Zitat