Einzelnen Beitrag anzeigen

Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#1

Installierte Dateitypen im ListView auflisten

  Alt 22. Feb 2006, 15:19
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
  Mit Zitat antworten Zitat