Thema: ShellExecute

Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ShellExecute

  Alt 8. Jun 2020, 09:51
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
  Mit Zitat antworten Zitat