比如说,我想列出在
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
内的所有项值!
怎样实现?
在线等待!解决后马上给分!

解决方案 »

  1.   

    try
     if MyReg.OpenKey(Edit2.Text , false) then
      begin
       MyReg.GetValueNames(Val) ;  //取得键名
       for I:=0 to Val.Count-1 do
             begin
               Form2.Memo1.Lines.Add (Val.Strings[I]);
             end;  //逐行加到文本框中
       MyReg.CloseKey; // 关闭子键
      end;finally
      

  2.   

    var
      Val:TStringList;
      MyReg : TRegistry;
      I:Integer ;    //声明变量
    begin
    Val := TStringList.Create ;
    MyReg := TRegistry.Create;
    MyReg.RootKey := HKEY_CURRENT_USER ;
    end; try
     if MyReg.OpenKey(\Software\Microsoft\Windows\CurrentVersion\Run, false) then
      begin
       MyReg.GetValueNames(Val) ;  //取得键名
       for I:=0 to Val.Count-1 do
             begin
               Form2.Memo1.Lines.Add (Val.Strings[I]);
             end;  //逐行加到文本框中
       MyReg.CloseKey; // 关闭子键
      end;finally
      

  3.   

    获得注册表项下的所有值:
    Var Reg : TRegistry;
        list : TStrings;
        i    : Integer;
    Begin
     Reg:=TRegistry.Create;
     Reg.RootKey:='HKEY_LOCAL_MACHINE';
     If Reg.OpenKey('\Software\Microsoft\CurrentVersion\Run', false) then
      Begin
       List:=TStringList.Create;
       Reg.GetValueNames(List);
       For i:=0 to list.Count-1 do
        If Reg.ValueExists(List[i]) then
         Begin
          Case Reg.GetDataType(List[i]) of
           rdInteger: Reg.ReadInteger(List[i]);
           rdBinary: Reg.ReadBinaryData(List[i]);
          else 
            Reg.ReadString(List[i]);
          End;  
         End;
      End;
    End;