请简要写一下读写的程序,谢谢。分不够再加喽。

解决方案 »

  1.   

    使用TRegistry类。
    sReg:= TRegistry.Create;
    try
      sReg.RootKey:=HKEY_CURRENT_USER;                    //设置主键
      if sReg.OpenKey('\Software\XSoft\MySoft',True) then //打开子键,如果不存在就新建
      begin
        sReg.WriteString('User','123');                   //写一个字符型键,如果不存在就新建
        sReg.WriteString('Code','abc');                   //如果要读的话,用ReadString方法
      end;
      sReg.CloseKey;
    finally
      sReg.free;
    end;
    别的类型的键的话,可以使用相应的Write和Read方法,如读整形键用:sReg.ReadInteger
      

  2.   

    var
      aReg:TRegIniFile;
    begin
      aReg := TRegIniFile.Create('');
      try
        aReg.RootKey := HKEY_LOCAL_MACHINE;
        if aReg.OpenKey('Software',False) then
          Result :=aReg.ReadString(g_RegPath,Key,'')
        else
          Result := '';
      finally
        aReg.Free;
      end;
    end;
      

  3.   

    REG_NONE 是未定义类型。
    既然是未定义,那么就不是你的程序定义的,或者是其他软件定义的数据格式,也就是私有的。对你是不透明的。可以按二进制格式来读。不过既然对你是不透明的,即使读了也没什么用。
    至于如何往注册表里写REG_NONE ,可能需要使用API.
    这是API原型:详见SDK帮助。
    LONG RegSetValueEx(    HKEY hKey, // handle of key to set value for  
        LPCTSTR lpValueName, // address of value to set 
        DWORD Reserved, // reserved 
        DWORD dwType, // flag for value type 
        CONST BYTE *lpData, // address of value data 
        DWORD cbData  // size of value data 
       );
      

  4.   

    晕~2、3、4楼都很热情,谢谢可是,题都没看清就回答。感谢flyinwuhan(超越)的解答。
    我已知该REG_NONE如果按二进制来读取,得到的BUFFER是一个字符串,所以读出来是有用的。
    现在的关键是如何写REG_NONE,我指Delphi的方法,TRegistry没有提供WriteHexdata的方法。比如一个文件路径:
    C:\Program files\Messenger\msn.exe
    请按REG_NONE类型写入到注册表(位置无所谓)
    如果必须要用API,请给一个实现过程,谢谢!
      

  5.   

    flyinwuhan(超越)快来啊?给个API解决的例子?谢谢啦。。