Ich hab meinen Code mal so umgebaut, dass ich mit GetExitCodeProcess auf das Beenden warte, aber irgendwie springt er sofort aus der Schleife raus. Ich habe die Befürchtung, dass es an meinem ShellExecuteEx liegt. Damit führe ich ja lediglich eine Kommandozeile aus.
So sieht das jetzt genau aus:
Delphi-Quellcode:
var
SHELLINFO : TShellExecuteInfo;
lpExitCode : Cardinal;
begin
// fillChar(SHELLINFO, SizeOf(SHELLINFO), #0);
with SHELLINFO
do
begin
cbSize := SizeOf(SHELLINFO);
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := 0;
lpVerb :=
nil;
lpFile := PChar('
explorer');
lpParameters := PChar(startHTML);
lpDirectory :=
nil;
nShow := SW_SHOWNORMAL;
end;
try
ShellExecuteEx(@SHELLINFO);
WaitForInputIdle(SHELLINFO.hProcess, 3000);
repeat
Sleep(0);
Application.ProcessMessages;
showMessage(IntToStr(SHELLINFO.hProcess));
GetExitCodeProcess(SHELLINFO.hProcess, lpExitCode);
until (lpExitCode <> STILL_ACTIVE);
showMessage('
Blob');
except
on E:
Exception do showmessage(e.
Message);
end;
end;
Kann ich denn auch mit CreateProcess den Standardbrowser aufrufen?