Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateiendungen » Zur Dateiendung gehörige Verknüpfung finden
Zur Dateiendung gehörige Verknüpfung finden
Viele Dateiendungen (z.B. *.Doc) sind in Windows mit Programmen verknüpft. Klickt man diese Dateien an, wird das zugehörige Programm gestartet und die Datei geöffnet. Beispielsweise sind Word-Dokumente (*.doc) in der Regel mit Microsoft Word oder Wordpad verknüpft.
Dieser Tipp zeigt, wie man das verknüpfte Programm und dessen Pfad ermitteln kann.
uses ShellApi; resourcestring SFILE_NOT_FOUND = 'Die angegebene Datei "%s" konnte nicht gefunden werden.'; SNO_ASSOCIATED_EXE = 'Für den angegebenen Dateitypen ist kein ausführbares Programm verfügbar.'; SPATH_NOT_FOUND = 'Der angegebene Pfad "%s" konnte nicht gefunden werden.'; SEXE_INVALID = 'Das ausführbare Programm ist keine gültige Win32-Anwendung.'; function GetExecutable(const AFileName: string): string; var FileName, Directory: string; begin FileName := ExtractFileName(AFileName); Directory := ExtractFilePath(AFileName); Setlength(Result, MAX_PATH); FillChar(Pointer(Result)^, Length(Result), #0); case FindExecutable(Pointer(FileName), Pointer(Directory), Pointer(Result)) of 0: OutOfMemoryError; 31: MessageDlg(SNO_ASSOCIATED_EXE, mtError, [mbOk], 0); ERROR_FILE_NOT_FOUND: MessageDlg(Format(SFILE_NOT_FOUND, [FileName]), mtError, [mbOk], 0); ERROR_PATH_NOT_FOUND: MessageDlg(Format(SPATH_NOT_FOUND, [Directory]), mtError, [mbOk], 0); ERROR_BAD_FORMAT: MessageDlg(SEXE_INVALID, mtError, [mbOk], 0); end; Setlength(Result, StrLen(Pointer(Result))); end;
Als Parameter muss der vollständige Pfad und Name der Datei übergeben werden, zu dem die Verknüpfung gesucht wird.