Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.846 Beiträge
 
Delphi 12 Athens
 
#1

ShellExecute Problemchen

  Alt 25. Mär 2023, 11:39
Hallo,

gegeben Delphi 11.3 und mein versuch per SHell Execute einen Installer von mir aufzurufen.

Delphi-Quellcode:
function TMyClass.RunInstaller(const FileName, FTempPath: string): Boolean;
var
  ErrorCode : UInt32;
  Param : string;
begin
  Param := '';

  Winapi.ShellAPI.ShellExecute(0, PWideChar('open'), PWideChar(FileName),
    PWideChar(Param), PWideChar(FTempPath), SW_SHOW);

  ErrorCode := GetLastError;

  if (ErrorCode <= 32) then
  begin
    WriteLogMsg('Fehler beim Ausführen des Installers:' +
                FileName + ' Code: ' + ErrorCode.ToString + ' Msg.: ' +
                System.SysUtils.SysErrorMessage(ErrorCode, 0));

    Result := false;
  end
  else
    Result := true;
end;
Mein Problem ist jetzt, dass der Installer problemlos gestartet wird, aber ErrorCode
immer 0 ist und die per SysErrorMessage abgeholte Fehlermeldung lautet: "Der Vorgang
wurde erfolgreich beendet".

Ja wie nun? Warum sagt dann Microsoft hier:
https://learn.microsoft.com/en-us/wi...-shellexecutea
dass Rückgabewerte <= 32 Fehlercodes sind und 0 wäre "The operating system is out of memory or resources.",
was ja wohl definitiv nicht stimmen kann, denn der Installer startet ja.

Was mache ich falsch?

Grüße
TurboMagic
  Mit Zitat antworten Zitat