注册表HKEY_CURRENT_USER   hxsoft\czy  下面有dm,mc等各项值
现在我想读取dm 的值
我的代码是:
procedure TForm1.Button1Click(Sender: TObject);
begin
New_key:=Tregistry.Create;
New_key.RootKey:=HKEY_CURRENT_USER;
New_key.OpenKey('hxsoft\czy\reg',False);
edit1.Text:=New_key.ReadString('Dm');
end;在编辑框不能显示读取的信息。
不知道是什么原因。
麻烦大家帮帮忙。
谢谢!

解决方案 »

  1.   

    给你个例子 
    uses     
          Registry;     
        
      //   Read   REG_DWORD     
      procedure   TForm1.Button1Click(Sender:   TObject);     
      var     
          Reg:   TRegistry;     
          RegKey:   DWORD;     
          Key:   string;     
      begin     
          Reg   :=   TRegistry.Create;     
          try     
              Reg.RootKey   :=   HKEY_USERS;     
              Key   :=   '.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet   Settings\URL   History';     
              if   Reg.OpenKeyReadOnly(Key)   then     
              begin     
                  if   Reg.ValueExists('DaysToKeep')   then     
                  begin     
                      RegKey   :=   Reg.ReadInteger('DaysToKeep');     
                      Reg.CloseKey;     
                      ShowMessage(IntToStr(RegKey));     
                  end;     
              end;     
          finally     
              Reg.Free     
          end;     
      end;     
      

  2.   

    检查 New_key.OpenKey('hxsoft\czy\reg',False); 返回的是True还是False注册表DM值是在hxsoft\czy项里面还是在hxsoft\czy\reg项里面?
      

  3.   

    your description: 
     //HKEY_CURRENT_USER \ hxsoft\czy     下面有dm,mc那你代码里路径错了,改成这样的...procedure   TForm1.Button1Click(Sender:   TObject); 
    begin 
    New_key:=Tregistry.Create; 
    New_key.RootKey:=HKEY_CURRENT_USER; 
    New_key.OpenKey('hxsoft\czy',False); 
    edit1.Text:=New_key.ReadString('Dm'); 
    edit2.text:=New_Key.readstring('MC');
    end;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Registry, Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Button3: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Button4: TButton;
        ListBox1: TListBox;
        Label4: TLabel;
        Label5: TLabel;
        Label6: TLabel;
        Edit4: TEdit;
        Edit5: TEdit;
        Edit6: TEdit;
        Button5: TButton;
        Button6: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); //创建
    var
      MyReg: TRegistry;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      MyReg.OpenKey('\xxx\xxx\',True);
      Finally
      MyReg.CloseKey;
      MyReg.Free;
      end;
      end;
    procedure TForm1.Button2Click(Sender: TObject);  //删除
    var
      MyReg: TRegistry;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      MyReg.DeleteKey('\xxx\xxx');
      Finally
      MyReg.CloseKey;
      MyReg.Free;
      end;
      end;procedure TForm1.Button3Click(Sender: TObject);//写入
     var
      MyReg: TRegistry;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      if MyReg.OpenKey('\xxx\xxx',True) then
        begin
        MyReg.WriteString('ddd','10');
        MyReg.WriteString('dm','test');
        MyReg.WriteString('mc','123456');
        Application.MessageBox('成功!','提示信息',64);
      MyReg.CloseKey;
      MyReg.Free;
      end;
      except
      Application.MessageBox('操作失败!','提示信息',64);
      end;
       end;procedure TForm1.Button4Click(Sender: TObject); //显示
     var
      MyReg: TRegistry;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      if MyReg.OpenKey('\xxx\xxx',True) then
        begin
        ListBox1.Items.Add('String类型'+MyReg.ReadString('mc')+MyReg.ReadString('dm'));    Application.MessageBox('成功!','提示信息',64);
      MyReg.CloseKey;
      MyReg.Free;
      end;
      except
      Application.MessageBox('操作失败!','提示信息',64);
      end;
       end;procedure TForm1.Button5Click(Sender: TObject);  //显示
     var
      MyReg: TRegistry;
      num:string;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      if MyReg.OpenKey('\xxx\xxx',True) then
        begin
        Edit4.Text :=MyReg.ReadString('dm');
        Edit5.Text :=MyReg.ReadString('mc');
        num:=MyReg.ReadString('ddd');    Edit6.Text :=IntToStr(StrToInt(num));    Application.MessageBox('成功!','提示信息',64);
      MyReg.CloseKey;
      MyReg.Free;
      end;
      except
      Application.MessageBox('操作失败!','提示信息',64);
      end;
       end;procedure TForm1.Button6Click(Sender: TObject);
     var
      MyReg: TRegistry;
    begin
     Try
      MyReg:= TRegistry.Create;
      MyReg.RootKey:= HKEY_CURRENT_USER;
      if MyReg.OpenKey('\xxx\xxx',True) then
        begin
        MyReg.WriteString('dm',Edit1.text);
        MyReg.WriteString('mc',Edit2.text);
        MyReg.WriteString('ddd',Edit3.text);
        Application.MessageBox('成功!','提示信息',64);
      MyReg.CloseKey;
      MyReg.Free;
      end;
      except
      Application.MessageBox('操作失败!','提示信息',64);
      end;
       end;end.
      

  5.   

    你的错误在于你的注册文件位置:是这个New_key.OpenKey('hxsoft\czy\reg',False); 
    还是这个:New_key.OpenKey('hxsoft\czy',False);
    请用REGEDIT命令去查看一下你的注册文件所在位置,再回来改一下这里就行了的! 
      

  6.   

    而且还要把那个false改为TRUE才行哦!