AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ShellExecuteandWait - Status abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecuteandWait - Status abfragen

Ein Thema von Lord_Stifterl · begonnen am 20. Okt 2004 · letzter Beitrag vom 21. Okt 2004
Antwort Antwort
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
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: ShellExecuteandWait - Status abfragen

  Alt 21. Okt 2004, 07:36
Hi,

Hast du schon eine Antwort gefunden?
Thomas
  Mit Zitat antworten Zitat
Lord_Stifterl

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

Re: ShellExecuteandWait - Status abfragen

  Alt 21. Okt 2004, 09:30
Zitat:
Hast du schon eine Antwort gefunden?
Leider muss ich die Frage mit Nein beantworten. Hab mich zwar schon bei microsofts msdn schlau gemacht und auch so einiges gefunden, jedoch nicht wirklich was ich gesucht habe. Was mich ein wenig verzweifeln lässt ist die Tatsache, dass ich zwar, wie schon erwähnt, ein bisschen schlauer geworden bin, aber ich noch immer nicht weiß wie ich folgendes ändern müsste, damit ich einen anderen status abfragen kann bzw. mit welchem Wert ich dies tun kann.


Delphi-Quellcode:
                while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
                        Application.ProcessMessages;
Bezüglich den Werten oder mit welcher Funktion ich dies am besten machen könnte, steht leider nichts in der msdn.

LG
Alex
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#4

Re: ShellExecuteandWait - Status abfragen

  Alt 21. Okt 2004, 10:40
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.
Gruß
UweR
  Mit Zitat antworten Zitat
Lord_Stifterl

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

Re: ShellExecuteandWait - Status abfragen

  Alt 21. Okt 2004, 10:52
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
Alex
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:25 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