请问各位大哥:在程序中如何备份注册表及自定义备份的路径,还有恢复注册表的方法? 如果问题解决,另开贴加50分,决不食言。

解决方案 »

  1.   

    在开始菜单中的“运行”中输入“regedit”确定,在“注册表编辑器“的“文件”菜单下点击“导出”,在出现的菜单中备份注册表及自定义备份的路径。OK!
      

  2.   

    备份注册表好说,你可以直接用CopyFile,将System.dat和User.dat复制到你欲备份的路径即可。
    至于用程序恢复,gz ^_^
      

  3.   

    搜索了以前的帖子,问及此问题的不少,均无结果。本人给出注册表一个键的备份方法,关于遍历注册表的过程可以自己添加。API函数RegSaveKey的功能有限。
    #include<fstream>
    void C...Dlg::OnButton1() //注册表备份
    {
    std::ofstream tfile("C:\\...\\back.reg",std::ios::out);
    tfile<<"REFEDIT4\n\n"; tfile<<"[HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\]\n";
    tfile<<"\"Test1\" =\"Adam\"\n";
    tfile<<"\"Test2\"=hex:61\n";
    tfile<<"\"Test3\"=dword:00000064\n";
    tfile.close();
    }void C...Dlg::OnButton2() //注册表恢复
    {
    system("C:\\...\\back.reg");//请先备份注册表
    }
      

  4.   

    http://www.vckbase.com/document/viewdoc.asp?id=724
      

  5.   

    void CRegDlg::OnButton24() //注册表备份
    {
        ShellExecute(NULL,"open","C:\\Windows\\Regedit.exe","/e \"C:\\back.reg\"",NULL,SW_SHOWNORMAL);
    }
    void CRegDlg::OnButton25() //注册表恢复
    {
        ShellExecute(NULL,"open","C:\\Windows\\Regedit.exe","/s \"C:\\zzq.reg\"",NULL,SW_SHOWNORMAL);
    }
      

  6.   

    没问题,备份后可用UltraEdit打开查看。改"/s \"C:\\back.reg\""为"/s \"C:\\back.reg\""时,会出现提示对话框。我是在win98下用VC6.0调试成功的.
      

  7.   

    改"/s \"C:\\back.reg\""为"\"C:\\back.reg\""
      

  8.   

    win2000好像没有什么提示?也不知道是否成功。能解释一下/s and /e 的意思嘛?
      

  9.   

    /s 表示取消执行提示,没有时会谈出执行提示对话框,添加/s就是为了取消提示;/e 是一种反执行标志,字面意思本人也不知道。