Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateieigenschaften » Anwendung ermitteln, die mit einer Dateiendung verknüpft ist
Anwendung ermitteln, die mit einer Dateiendung verknüpft ist
Dateien sind unter Windows meistens mit einer Anwendung verknüpft, so z. B. doc mit Word. Um herauszufinden, mit welcher Anwendung eine Endung verknüpft ist, kann folgende Funktion verwendet werden:
uses Registry; function GetProgramAssociation(const Ext: string): string; var reg: TRegistry; s: string; begin s:=''; reg:=TRegistry.Create; try reg.RootKey:=HKEY_CLASSES_ROOT; if reg.OpenKey('.'+ext+'shellopencommand', false) then begin s:=reg.ReadString(''); reg.CloseKey; end else begin if reg.OpenKey('.'+ext, false) then begin s:=reg.ReadString(''); reg.CloseKey; if s'' then begin if reg.OpenKey(s+'shellopencommand', false) then s:=reg.ReadString(''); reg.CloseKey; end; end; end; if Pos('%', s) > 0 then Delete(s, Pos('%', s), length(s)); if ((length(s)>0) and (s[1]='"')) then Delete (s, 1, 1); if ((length(s)>0) and (s[length(s)]='"')) then Delete(s, Length(s), 1); while ((length(s)>0) and ((s[length(s)]=#32) or (s[length(s)]='"'))) do Delete(s, Length(s), 1); result:=s; finally reg.Free; end; end;
Aufrufbeispiel:
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetProgramAssociation('gif')); end;