在系统 HKEY_CURRENT_USER 根目录下
   1、有控制台Console目录,在其下有很多项值,如ColorTable01等,我应该怎么读取它的数据呢?
   2、我在控制台Console目录下面又创建了一个database项,并给databasename赋值为"data123",这我又应该用程序将它读取出来呢?
读出的数据我都要字符串数据。

解决方案 »

  1.   

    看帮助啦
    var
      Reg: TRegIniFile;
    begin
      if Length(NameofKey.Text) or Length(ValueforKey.Text) <=0 then
        Showmessage('Either the key name or value is missing.')
      else begin
        Reg:=TRegIniFile.Create('MyApp');
        try
          Reg.RootKey:=HKey_Local_Machine; // Section to look for within the registry
          if not Reg.OpenKey(NameofKey.Text,False) then
            if MessageDlg('The specified key does not exist, create it?'                 ,Mtinformation,[mbYes,mbNo],0)=mryes then
            begin
              Reg.CreateKey(NameofKey.Text);
              if not Reg.OpenKey(NameofKey.Text,False) then
                ShowMessage('Error in Opening Created Key')
              else
                Reg.WriteString('Main Section','Value1',ValueForKey.Text);
            end
         else
           Reg.WriteString('Main Section','Value1',ValueForKey.Text);
        finally      Reg.Free;
        end;
      end;
      

  2.   

    VCL Reference
    TRegistry.ReadString
      

  3.   

    function ReadString(const Name: String): String;
      

  4.   

    registertemp := TRegistry.create; //建立一个registry实例
    with registertemp do
    begin
    RootKey := HKEY_CURRENT_USER;
    OpenKey('software\odbc\odbc.ini\odbc data sources', true)
      stemp:=readstring('')
     
    end;
      

  5.   

    对哟,使用TRegistry进行注册表读写,着很简单
      

  6.   

    解决:
       我来总结一下或许对后来看到本贴的哥们有所帮助!
    (特精简明了的写入程序在此略过!),在这里就专门说读取
    var reg:TRegIniFile;
    begin
    try
      reg:=TRegIniFile.Create;
      Reg.RootKey:=HKEY_CURRENT_USER;
      if  (Reg.OpenKey('CurrentDb',true)) then   begin
     edit5.Text:=reg.ReadString('','',''); //读取根部默认数据
     edit6.Text:=reg.ReadString('','自定义关键字英文','');//读取根部自定义数据
      edit4.Text:=reg.ReadString('database','DBName','');//读取CurrentDb下的新建值database项中的DBName数据
      
         end else
                 edit4.Text:='no find';  Reg.CloseKey;
    finally
      Reg.Free;
    end;