Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#10

AW: ShellExecute, Batch über runas starten

  Alt 28. Apr 2016, 14:43
Wichtig sind auch die entsprechenden "" weil auf diese Weise die Parameter getrennt werden müssen (Langer Dateiname mit eventuellen Leerzeichen).
Jep.

Zitat:
Ein weiterer Fehler war, dass beim Aufruf der Batch mit CMD, das aktuelle Verzeichnis auf c:\windows\system32 verweist.
ShellExecute hat doch einen entsprechenden Parameter zum Setzen des Arbeitsverzeichnisses, den du im Code im OP doch bereits belegt hast.

Zitat:
Code:
   
Temp_Vz := 'c:\tmp\Update\'

   
ShellExecute(handle, 'runas', PCHAR('cmd.exe'),
                              PCHAR('/C ""'+Temp_Vz+'A_Upd.bat" '+batch_par+' "'+Temp_Vz+'""' ),
                              PCHAR('"'+Temp_Vz+'"'), SW_HIDE);
Ich empfehle dringend, die Funktion (SysUtils.)Delphi-Referenz durchsuchenFormat zu benutzen, sonst blickst du später nicht mehr durch, wenn Fehler auftreten und suchst (vermeintlich) fehlende Anführungszeichen oder sonstiges. Delphi-Referenz durchsuchenAnsiQuotedStr bietet sich hier vielleicht auch an, um Anführungszeichen zu setzen.

MfG Dalai
  Mit Zitat antworten Zitat