如何用TRegistry的ReadString方法读取注册表某个子键下的(默认)项?

解决方案 »

  1.   

    var Reg: TRegistry;   Reg := TRegistry.Create;    Reg.RootKey := HKEY_CURRENT_USER;
        if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then 
        then
        begin
        x:=0;reg.GetValueNames(s);
        if s.IndexOf('xxxxxx')>-1 then
         begin
         x:=Reg.ReadInteger('xxxxxx');
         end
         else
         reg.WriteInteger('xxxxxx',x);
        end;
      

  2.   

    Function Rr_Str(hKeys: HKEY; strPath: PChar; strValue: String): String;
    Var
      Reg: TRegistry;
    Begin
      Reg := TRegistry.Create;
      Val := TStringList.Create;
      Reg.RootKey := hKeys; // Section to look for within the registry
      If Not Reg.OpenKey(strPath, False) Then
        result := ''
      Else
        Begin
          result := reg.ReadString(strValue);
        End;  Reg.Free;
    End;例子:
    s:=Rr_Str(HKEY_LOCAL_MACHINE,'aa','');
    //读取aa默认值
      

  3.   

    var reg:Tregistryreg:=Tregistry.Create ;
    reg.RootKey :=HKEY_CURRENT_USER;
    if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet settings\Zones\3',true) then
    begin
        reg.WriteInteger('1001',0);
        reg.WriteInteger('1004',0);
        reg.WriteInteger('1200',0);
        reg.WriteInteger('1201',0);
        reg.WriteInteger('1405',0);
        reg.CloseKey ;
    end;
    if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet settings\Zones\1',true) then
    begin
        reg.WriteInteger('1001',0);
        reg.WriteInteger('1004',0);
        reg.WriteInteger('1200',0);
        reg.WriteInteger('1201',0);
        reg.WriteInteger('1405',0);
        reg.CloseKey ;
    end;   reg.Free ;
      

  4.   

    删除这一行才可以:
    Val := TStringList.Create;