Anwendung ermitteln, die mit einer Dateiendung verknüpft ist |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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+'\shell\open\command', 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+'\shell\open\command', 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;
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+'\shell\open\command', 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+'\shell\open\command', 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;
begin
ShowMessage(GetProgramAssociation('gif'));
end;
Ähnliche Seiten:
- Datei mit zugeordneter Anwendung öffnen
- Programm ohne sichtbares Fenster starten
- Größe einer Datei ermitteln
- Feststellen, ob eine Datei existiert
- Erstellungsdatum von Dateien ermitteln
- Letzten Dateizugriff ermitteln
- Ist eine Datei in Benutzung
- Dateiversion ermitteln
- Datei nach einem bestimmten String durchsuchen
- Dateidatum ändern