Einzelnen Beitrag anzeigen

wolves232

Registriert seit: 17. Feb 2012
8 Beiträge
 
#1

ShellExecute_AndWait im Unterordner

  Alt 7. Feb 2013, 12:09
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

Geändert von wolves232 ( 7. Feb 2013 um 13:34 Uhr)
  Mit Zitat antworten Zitat