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.)
Format zu benutzen, sonst blickst du später nicht mehr durch, wenn Fehler auftreten und suchst (vermeintlich) fehlende Anführungszeichen oder sonstiges.
AnsiQuotedStr bietet sich hier vielleicht auch an, um Anführungszeichen zu setzen.
MfG Dalai