Hallo,
ich habe mal eine Procedurte geschrieben mit der man die Installierten Dateitypen in einem Dreispatligen TListView auflisten kann.
Diese angaben werden aufgelistet:
1.Spalte: Dateierweiterung
2.Spalte: Beschreibung
3.Spalte: Öffnen mit
Ich weiss zwar nicht wofür man das brauchen kann
. Ist aber mal ganz insteressant
Aber hier erstmal die Prozedur: (Die Anwendung steht ganz unten)
Delphi-Quellcode:
uses {...}, Registry;
{...}
procedure WriteExtList(const ExtList: TListView);
var
R1, R2: TRegistry;
S: string;
Exts, Exts2: TStringList;
i: integer;
LI: TListItem;
NSK: string;
EXT, Descripe, OpenWith: string;
begin
if not Assigned(ExtList) then
Exit;
ExtList.Clear;
R1 := TRegistry.Create;
R2 := TRegistry.Create;
Exts := TStringList.Create;
Exts2 := TStringList.Create;
try
R2.RootKey:=HKEY_LOCAL_MACHINE;
R1.Access:=KEY_READ;
R1.RootKey:=HKEY_LOCAL_MACHINE;
R1.OpenKey('Software\Classes',False);
R1.GetKeyNames(Exts);
R1.CloseKey;
for i:=0 to Exts.Count-1 do
begin
S:=Exts.Strings[i];
if (s[1] in ['.']) then
Exts2.Add(s);
end;
for i:=0 to Exts2.Count-1 do
begin
R2.OpenKey('Software\Classes\'+Exts2.Strings[i],False);
EXT:=EXTS2.Strings[i];
NSK:=R2.ReadString('');
R2.CloseKey;
R2.OpenKey('Software\Classes\'+NSK,False);
Descripe:=R2.ReadString('');
R2.CloseKey;
R2.OpenKey('Software\Classes\'+NSK+'\shell\open\command\',False);
OpenWith:=R2.ReadString('');
with ExtList do
begin
LI:=Items.Add;
LI.Caption:=EXT;
LI.SubItems.Add(Descripe);
LI.SubItems.Add(OpenWith);
end;
R2.CloseKey;
end;
finally
R1.Free;
R2.Free;
Exts.Free;
Exts2.Free;
end;
end;
und so wendet man sie an:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
WriteExtList(ListView1);
end;
Edit1: Code optimierung
[edit=Chakotay1308]Code-Style angepasst und Ressourcen-Schutzblöcke eingebaut. Mfg, Chakotay1308[/edit]
[edit=Chakotay1308]Klassifizierung. Mfg, Chakotay1308[/edit]
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen