怎么生成一个注册表文件?对注册表的读写都不成问题了,但是想生成一个注册表文件,那位大哥讲一下!谢谢

解决方案 »

  1.   

    开始——》运行——》输入Regedit->回车——》选择相应键——》注册表——》导出注册表文件
      

  2.   

    打开记事本或写字板,点击另存为,将文件保存为rgd后缀名文件,
    保存类型为:所有文件(*.*)
      

  3.   

    //向注册表写入一个数据项目
    function WriteRegStr(str:string):string;
    var
      reg:TRegistry;
    begin
      reg:=TRegistry.Create;
      reg.RootKey:=HKEY_LOCAL_MACHINE;
      reg.OpenKey('Software\test',false);
      reg.WriteString('regname',regvalue);
      reg.Free;
    end;//从注册表读出一个数据项目
    function GetRegStr():string;
    var
      reg:TRegistry;
    begin
      reg:=TRegistry.Create;
      reg.RootKey:=HKEY_LOCAL_MACHINE;
      reg.OpenKey('Software\test',false);
      GetRegStr:=reg.ReadString('regname');
      reg.Free;
    end;简单的读写。
    那位大哥能给我讲一下不用记事本,直接生成注册表文件的方法?
      

  4.   

    就会,运行—>输入Regedit->回车——>选择相应键——>注册表——>导出注册表文件
      

  5.   

    能用记事本就能在程序里自己写啊。写个TXT文件在把扩展名改成.reg就可以了吧。
    不过不同系统的.reg文件格式有点不同。
      

  6.   

    开始——》运行——》输入Regedit->回车——》选择相应键——》注册表——》导出注册表文件
      

  7.   

    大家看清楼主的问题再回答,楼主的问题可以考虑com,我没有资料,sorry
    当然也可以自己写reg文件那样很复杂,需要区分不同操作系统
      

  8.   

    这是lxpbuaa(桂枝香在故国晚秋)写的一段代码,可以使用,但是生成的文件里面都是乱码。而且前几行看的不是很懂。 
    procedure TForm1.Button1Click(Sender: TObject);
    var
      RootKey,phKey: hKey;
      KeyName,sKeyFileName: String;
      hToken: THandle;
      tkp: TOKEN_PRIVILEGES;
      ReturnLength: DWord;
    begin
      if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_ALL_ACCESS or TOKEN_QUERY, hToken) then
      begin
        LookupPrivilegeValuew(nil, 'SeBackupPrivilege', tkp.Privileges[0].Luid);
        tkp.PrivilegeCount := 1;
        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, ReturnLength);
      end;
      RootKey := HKEY_LOCAL_MACHINE;
      KeyName := 'software\myreg';
      if RegOpenKeyEx(RootKey, PChar(KeyName), 0, KEY_ALL_ACCESS, phKey) = ERROR_SUCCESS then
      begin
        sKeyFileName := 'g:\myreg2';
        if RegSaveKey(phKey, PChar(sKeyFileName), nil)= 0 then
          ShowMessage('导出成功')
        else
          ShowMessage('导出失败');
        RegCloseKey(phKey);
      end;
    end; 
      

  9.   

    不太明白你所说的,如果用程序来生成一个注册表文件是很简单的,不用把自己搞得那么糊涂
    注册表文件是用一个书写标准的
    比如win2000下第一行是版本号即如下:
    Windows Registry Editor Version 5.00如果只是生成一个注册表文件,你可以象写txt文件一样写一个文件然后存为.reg结尾。
    如果用delphi写,更简单用TRegistryIniFile(TRegIniFile95/NT)只适用于类写就可以了!
     TRegistryIniFile怎么用就不用我说了吧,看help吧!
      

  10.   

    var
      F:TextFile;
      f1,f2,f3,f4,f5,s:string;
    begin
      assignFile(F,'D:\connreg.reg');
      Rewrite(F);
      f1:='Windows Registry Editor Version 5.00';
      f2:='[HKEY_LOCAL_MACHINE\SOFTWARE\reg]';
      f3:='@=""';
      f4:='"reg1"="'+GetRegStr()+'"';
      f5:='"reg2"="'+GetReg()+'"';
      s:=f1+#13+#13+f2+#13+f3+#13+f4+#13+f5;
      Writeln(F,s);
      closefile(F);
    end;这样就可以实现你说的,但是这种方法并不是很好。delphi自带一个导出注册表文件的方法。但是还不会用。所以想找人问一下。
      

  11.   

    使用TRegistry提供的SaveKey方法!!!
      

  12.   

    var
      reg : Tregistry;
    begin
      reg := Tregistry.Create;
      reg.Access:=KEY_ALL_ACCESS;
      reg.rootkey := HKEY_LOCAL_MACHINE;
      reg.OpenKey('software\myreg',false);
      reg.Savekey('software\myreg','D:\myreg1');
      reg.CloseKey;
    end;
    但是并不能导出注册表文件