Hallo,
OK, ich hab's jetzt doch noch mit einigen Anpassungen hinbekommen.
Eine Ursache war, dass ich den Parameter /C im 3 Parameter mit dabei hatte, also PChar('cmd.exe /C') hieß. Shellexecute lief dann mit Error 2 (kann Datei nicht finden) auf Fehler.
Wichtig sind auch die entsprechenden
"" weil auf diese Weise die Parameter getrennt werden müssen (Langer Dateiname mit eventuellen Leerzeichen).
Ein weiterer Fehler war, dass beim Aufruf der Batch mit CMD, das aktuelle Verzeichnis auf c:\windows\system32 verweist.
Übergebe hier das richtige Verzeichnis als 2ten CMD-Parameter, könnte man sicher auch in der Batch abfangen ....
Mit anliegendem Aufruf funktioniert es.
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);
lässt sich sicher optisch noch verbessern, aber es funktioniert. Nochmals Danke für die Impulse.
ergänzende Info über
http://ss64.com/nt/cmd.html