Zitat von
retnyg:
probier mal bei dem ersten nil ein 'open' und das hide lass weg
Dann öffnet er trotzdem das Explorer-Fenster.
Zitat von
retnyg:
ansonsten nimm CreateProcess
Hab ich mal probiert. Dazu habe ich mir folgende Funktion kopiert:
Delphi-Quellcode:
procedure TForm1.ExplorerStarten;
var aSi:TStartUpInfo;
aPI:TProcessInformation;
dwError:DWord;
begin
FillChar(aSi,SizeOf(TStartupInfo),0);
with aSI
do
begin
cb:=SizeOf(TStartupInfo);
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:=SW_HIDE;
end;
if not createprocess(
CreateProcess(PChar('
explorer.exe'),
nil,
nil,
nil,false,
NORMAL_PRIORITY_CLASS,
nil,
nil,aSI,
aPI)
then
begin
dwError:= GetLastError;
showmessage(Format('
Programm kann nicht gestartet werden. Fehler : %d',[dwError]));
end;
end;
Es funktioniert zwar alles, auch das Explorer-Fenster geht dann nicht mehr auf. Es kommt aber folgender Fehler: 'Programm kann nicht gestartet werden. Fehler : 2'.
Ich könnte natürlich einfach die Fehlermeldung deaktivieren, dann würde alles laufen. Aber der Fehler kommt ja nicht umsonst. Was bedeutet er und wie kann ich ihn verhindern?