Hallo,
Ich möchte eine .bat datei ausführen der im unterordner der exe liegt mit ShellExecute_AndWait.
Delphi-Quellcode:
procedure TInstallerProgramm.ShellExecute_AndWait(FileName, Params: string);
var
exInfo: TShellExecuteInfo;
Ph: DWORD;
begin
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_HIDE;
end;
if ShellExecuteEx(@exInfo) then
Ph := exInfo.HProcess
else
begin
ShowMessage(SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;
mit ShellExecute_AndWait(ListBoxInstallationen.Items[9], IntToStr(SW_HIDE)); läuft es nur wenn die .bat datei im hauptordner liegt.
mit extractfilepath(paramstr(0))+'Ordner\' klappt es nicht.
wie muss ich das machen ?
mfg Jörg