Einzelnen Beitrag anzeigen

Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

ShellExecuteEx -> dcc32.exe

  Alt 27. Mai 2013, 12:31
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
Martin MIchael
  Mit Zitat antworten Zitat