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.
