Code:
procedure TForm5.pnlUpdateMessageClick(Sender: TObject);
begin
try
ShellExecute(0, 'open', 'cmd', PChar('/c ' + (ParamStr(0) + '_DELETE_COPY_EXECUTE.bat')), nil, SW_SHOWNORMAL);
ShowMessage('Alte Version gelöscht.');
except
ShowMessage('Fehler');
end;
end;
Wo genau liegt mein Fehler?
Du wertest den Rückgabewert von ShellExecute nicht aus!
Delphi-Quellcode:
procedure TForm5.pnlUpdateMessageClick(Sender: TObject);
var
ExecResult: Integer
begin
try
ExecResult := ShellExecute(0, 'open', 'cmd', PChar('/c ' + (ParamStr(0) + '_DELETE_COPY_EXECUTE.bat')), nil, SW_SHOWNORMAL);
if ExecResult <= 32 then
ShowMessage('Fehlercode: ' + IntToStr(ExecResult));
ShowMessage('Alte Version gelöscht.');
except
ShowMessage('Fehler');
end;
end;
Wenn jetzt ein Fehlercode angezeigt wird, kannst du von dort aus weitermachen.
Ich tippe ja auf Nummer 5 (SE_ERR_ACCESSDENIED).
Doku dazu:
https://docs.microsoft.com/en-us/win...-shellexecutea