1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| function ShellExecuteErrorMessage(ErrorCode: Integer): string; begin case ErrorCode of 0: Result := 'Zuwenig Speicher, ausführbare Datei war zerstört, Relokationswerte waren ungültig'; 2: Result := 'Datei wurde nicht gefunden.'; 3: Result := 'Verzeichnis wurde nicht gefunden.'; 5: Result := 'Fehler beim gemeinsamen Zugriff auf eine Datei im Netz oder Fehler beim Zugriff auf eine gesperrte Datei im Netz.'; 6: Result := 'Bibliothek forderte separate Datensegmente für jede Task an.'; 8: Result := 'Zuwenig Speicher, um die Anwendung zu starten.'; 10: Result := 'Falsche Windows-Version.'; 11: Result := 'Ungültige ausführbare Datei. Entweder keine Windows-Anwendung oder Fehler in der EXE-Datei.'; 12: Result := 'Anwendung für ein anderes Betriebssystem.'; 13: Result := 'Anwendung für MS-DOS 4.0.'; 14: Result := 'Typ der ausführbaren Datei unbekannt.'; 15: Result := 'Versuch, eine Real-Mode-Anwendung (für eine frühere Windows-Version) zu laden.'; 16: Result := 'Versuch, eine zweite Instanz einer ausführbaren Datei mit mehreren Datensegmenten die nicht als nur lesbar gekennzeichnet waren, zu laden.'; 19: Result := 'Versuch, eine komprimierte ausführbare Datei zu laden.' + #13#10 + 'Die Datei muß dekomprimiert werden, bevor sie geladen werden kann.'; 20: Result := 'Ungültige dynamische Linkbibliothek (DLL).' + #13#10 + 'Eine der DLLs, die benötigt wurde, um die Anwendung auszuführen, war beschädigt.'; else Result := 'Ein Unbekannter Fehler ist aufgetreten. (' + IntToStr(ErrorCode) + ')'; end; end;
procedure TForm1.Button1Click(Sender: TObject); const MAX_ERROR_CODE = 32; var ReturnCode: integer; begin ReturnCode := ShellExecute(0, Nil, PChar('C:\RDM-TestUnit\XLoader\XLoader.exe'), Nil, Nil, SW_SHOWNORMAL); if ReturnCode <= MAX_ERROR_CODE then MessageBox(0, PChar(ShellExecuteErrorMessage(ReturnCode)), nil, MB_OK or MB_ICONERROR); end; |