Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Dateien / Laufwerke (https://www.delphipraxis.net/41-library-dateien-laufwerke/)
-   -   Delphi Installierte Dateitypen im ListView auflisten (https://www.delphipraxis.net/63757-installierte-dateitypen-im-listview-auflisten.html)

robinWie 22. Feb 2006 15:19


Installierte Dateitypen im ListView auflisten
 
Hallo,
ich habe mal eine Procedurte geschrieben mit der man die Installierten Dateitypen in einem Dreispatligen TListView auflisten kann.
Diese angaben werden aufgelistet:

:arrow: 1.Spalte: Dateierweiterung
:arrow: 2.Spalte: Beschreibung
:arrow: 3.Spalte: Öffnen mit

Ich weiss zwar nicht wofür man das brauchen kann :gruebel: . Ist aber mal ganz insteressant :-D

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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz