C++对注册表常见操作的封装实现(五)

/*============================================================  
    * 分支功能:备份注册表  
    * 参  数:-save  RootKey SubKey Filename  
    * 参数说明:命令 根键 子键 文件名  
    * 抛出异常:操作失败,提示信息。  
    * 作  者:RainLeaf, 2009年4月10日  
    *============================================================*/  
  
    if( 0 == (strcmp(argv[1], "-save")) )   
    {   
        if( 5 == argc )   
        {   
            CRegOperator reg;   
            bReturn = reg.SetHKEY(argv[2]);   
  
            if( FALSE == bReturn )   
            {   
                cout << "The Key [" << argv[2] << "] set fail!" << endl;   
                return 0;   
            }   
  
            bReturn = reg.OpenKey(argv[3]);   
            if( FALSE == bReturn )   
            {   
                cout << "Open [" << argv[3] << "] fail!" << endl;   
                return 0;   
            }   
  
            bReturn = reg.SaveKey( argv[4] );   
            if( FALSE == bReturn )   
            {   
                cout << "Save the [" << argv[4] << "] fail!" << endl;   
                return 0;   
            }   
  
            cout << "Save [" << argv[4] << "] value from [" << argv[3] << "] successfully!" << endl;   
            return 0;   
        }   
        else  
        {   
            cout << "Warning:Must have four param with \'-save\' option!" << endl;   
            return 0;   
        }   
    }   
  
    /*============================================================  
    * 分支功能:恢复注册表  
    * 参  数:-restore  RootKey Filename  
    * 参数说明:命令 根键 文件名  
    * 抛出异常:操作失败,提示信息。  
    * 作  者:RainLeaf, 2009年4月10日  
    *============================================================*/  
  
    if( 0 == (strcmp(argv[1], "-restore")) )   
    {   
        if(4 == argc )   
        {   
            CRegOperator reg;   
            bReturn = reg.SetHKEY(argv[2]);   
  
            if( FALSE == bReturn )   
            {   
                cout << "The Key [" << argv[2] << "] set fail!" << endl;   
                return 0;   
            }   
  
            bReturn = reg.RestoreKey( argv[3] );   
            if( FALSE == bReturn )   
            {   
                cout << "Restore from [" << argv[3] << "] fail!" << endl;   
                return 0;   
            }   
  
            cout << "Restore [" << argv[2] << "] value from file [" << argv[3] << "] successfully!" << endl;   
            return 0;   
        }   
        else  
        {   
            cout << "Warning:Must have three param with \'-restore\' option!" << endl;   
            return 0;   
        }   
    }   
  
    /*============================================================  
    * 分支功能:版主信息  
    * 参  数:-h [-help]  
    * 参数说明:命令  
    * 抛出异常:操作失败,提示信息。  
    * 作  者:RainLeaf, 2009年4月10日  
    *============================================================*/  
  
    if( ( 0 == strcmp( argv[1], "-h" ) ) || ( 0 == strcmp( argv[1], "-help" ) ) )   
    {   
        RegOperatorHelp();   
        return 0;   
    }   
  
    cout << "Error param! Please execute [" << argv[0] << "] or [" << argv[0] << " -h] to get help!" << endl;   
    return 0;   
}   
void RegOperatorHelp()   
{   
    cout << " * 作  者:RainLeaf, 2009年4月10日" << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:读取键值" << endl;   
    cout << "* 参  数:-read  RootKey SubKey ValueName" << endl;   
    cout << "* 参数说明:命令 根键 子键 值的名字" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:创建子键" << endl;   
    cout << "* 参  数:-create  RootKey SubKey" << endl;   
    cout << "* 参数说明:命令 根键 子键" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:创建键值" << endl;   
    cout << "* 参  数:-write  RootKey SubKey ValueName Value" << endl;   
    cout << "* 参数说明:命令 根键 子键 值的名字 值" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:删除键值" << endl;   
    cout << "* 参  数:-delval  RootKey SubKey ValueName" << endl;   
    cout << "* 参数说明:命令 根键 子键 值的名字" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:删除非空子键" << endl;   
    cout << "* 参  数:-delkey  RootKey SubKey" << endl;   
    cout << "* 参数说明:命令 根键 子键" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:备份注册表" << endl;   
    cout << "* 参  数:-save  RootKey SubKey Filename" << endl;   
    cout << "* 参数说明:命令 根键 子键 文件名" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:恢复注册表" << endl;   
    cout << "* 参  数:-restore  RootKey Filename" << endl;   
    cout << "* 参数说明:命令 根键 文件名" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   
    cout << "/*============================================================" << endl;   
    cout << "* 分支功能:版主信息" << endl;   
    cout << "* 参  数:-h [-help]" << endl;   
    cout << "* 参数说明:命令" << endl;   
    cout << "* 抛出异常:操作失败,提示信息。" << endl;   
    cout << "*============================================================*/" << endl;   
cout << endl;   


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/201907,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值