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;
