delphi 遍历注册表

下面程序是读出windows中所有的已安装的程序.你自己看一下,很容易的.   
  uses   Registry;   
    
  procedure   TForm1.Button1Click(Sender:   TObject);   
  Var     list,softList   :TStringList;   
            Reg   :TRegistry;   
            FPath,FKey,SubString:String;   
            i:   integer;   
  begin   
        FPath   :=   'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';   
        FKey   :=   'DisplayName';   
        list   :=   TStringList.Create;   
        softList   :=   TStringList.Create;   
        Reg   :=   TRegistry.Create;   
    try   
        Reg.RootKey   :=   HKEY_LOCAL_MACHINE;   
        If   Reg.OpenKey(FPath,   False)   then   
            Reg.GetKeyNames(List);   
            List.Sort;   
            List.BeginUpdate;   
        Reg.CloseKey;   
        If   Reg.OpenKey(FPath,   False)   then   
              Edit1.Text   :=   List[0];   
            //Edit1.Text   :=   Reg.ReadString('DriverDesc');   
        Reg.CloseKey;   
        for   i:=0   to   List.Count-1   do   begin   
              FPath   :=   'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+List[i];   
              if   (Reg.OpenKey(FPath,False))   and   (Reg.ReadString(FKey)<>'')     then   
                  softList.Add(Reg.ReadString(FKey));   
              Reg.CloseKey;   
        end;//end   for   
    finally   
        Reg.Free;   //   用   Try..Finally   结构确保   REG   变量能够释放。   
    end;   
    softList.Sort;   
    ListBox1.Items:=softlist;   
  end;

你可能感兴趣的:(windows,list,String,Microsoft,Integer,Delphi)