Hallo
Ich habe noch nie was mit ShellExecuteEx gemacht nun probiere ich ein wenig rum
und bin auf
http://www.delphipraxis.net/165886-s...x-problem.html
gestossen.
Ich starte eine eine Batch das funktioniert auch gut.
Delphi-Quellcode:
dummyPath := '"' + ExePath + 'RC\MakeResDll.bat' + '"';
iCE:= shellapi.shellExecute(0, 'open', pChar(dummyPath), nil, nil, SW_MAXIMIZE);
Aber schöner wärs schon mit der folgenden function,
ich bekomme auch ein ShellExecuteEx(@Sei) = true hin
nur wird die
dll nicht erstellt.
Ich übergebe
FileName = Pfad + dcc32.exe
Directory = Ausgabepfad
Parameter = Pfad von File .dpr
Verb = '' = Nil;
CmdShow = 1;
Delphi-Quellcode:
function ShellExecAndWait(const FileName, Directory, Parameters, Verb: string; CmdShow: Integer): Boolean;
var
Sei: TShellExecuteInfo;
begin
FillChar(Sei, SizeOf(Sei), #0);
Sei.cbSize := SizeOf(Sei);
Sei.fMask := SEE_MASK_DOENVSUBST or SEE_MASK_FLAG_NO_UI or SEE_MASK_NOCLOSEPROCESS;
Sei.lpFile := PCharOrNil(FileName);
Sei.lpDirectory := PCharOrNil(Directory);
Sei.lpParameters := PCharOrNil(Parameters);
Sei.lpVerb := PCharOrNil(Verb);
Sei.nShow := CmdShow;
Result := ShellExecuteEx(@Sei);
if Result then
begin
WaitForInputIdle(Sei.hProcess, INFINITE);
WaitForSingleObject(Sei.hProcess, INFINITE);
CloseHandle(Sei.hProcess);
end;
end;
Meine Frage gibt es eine Möglichkeit das das cmd Fenster nicht geschlossen wird
um zu sehen was ich falsch mache oder mache ich generell einen Denkfehler