3、主文件(调用和测试)
view plaincopy to clipboardprint?
/********************************************************************
* 文件名:main.cpp
* 文件描述:主文件,对封装的注册表操作类进行测试
* 创建人: RainLeaf, 2009年4月10日
* 版本号:1.0
* 修改记录:
*********************************************************************/
#include "RegOperator.h"
#include <iostream>
using namespace std;
void RegOperatorHelp();
int main( int argc, char *argv[])
{
BOOL bReturn;
/* 命令行没有参数则输出帮助提示信息 */
if( 1 == argc )
{
RegOperatorHelp();
return 0;
}
for( int i = 0; i < argc; i ++)
{
assert( argv[i] );
}
/*============================================================
* 分支功能:读取键值
* 参 数:-read RootKey SubKey ValueName
* 参数说明:命令 根键 子键 值的名字
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-read")) )
{
if( 5 == argc )
{
CRegOperator reg;
CString strPrint;
bReturn = reg.SetHKEY( argv[2] );/* 设置当前根键 */
if( FALSE == bReturn )
{
/* 根键设置失败 */
cout << "\nThe 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.Read( argv[4], &strPrint );
if( FALSE == bReturn )
{
cout << "Read [" << argv[4] << "] fail!" << endl;
return 0;
}
/* 读取成功 */
cout << "The [" << argv[4] << "] value is [" << strPrint << "]" << endl;
return 0;
}
else
{
cout << "Warning:Must have four param with \'-read\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:创建子键
* 参 数:-create RootKey SubKey
* 参数说明:命令 根键 子键
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-create")) )
{
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.CreateKey( argv[3] );
if( FALSE == bReturn )
{
cout << "Create the key [" << argv[3] << "] fail!" << endl;
return 0;
}
cout << "Create the key [" << argv[3] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have three param with \'-create\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:创建键值
* 参 数:-write RootKey SubKey ValueName Value
* 参数说明:命令 根键 子键 值的名字 值
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-write")) )
{
if( 6 == 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.Write(argv[4], argv[5]);
if( FALSE == bReturn )
{
cout << "Write [" << argv[4] << "] fail!" << endl;
return 0;
}
cout << "Write [" << argv[5] << "] value into [" << argv[4] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have five param with \'-write\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:删除键值
* 参 数:-delval RootKey SubKey ValueName
* 参数说明:命令 根键 子键 值的名字
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-delval")) )
{
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.DeleteValue( argv[4] );
if( FALSE == bReturn )
{
cout << "Delete the [" << argv[4] << "] fail!" << endl;
return 0;
}
cout << "Delete [" << argv[4] << "] value from [" << argv[3] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have four param with \'-delval\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:删除非空子键
* 参 数:-delkey RootKey SubKey
* 参数说明:命令 根键 子键
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-delkey")) )
{
if( 4 == argc )
{
CRegOperator reg;
bReturn = reg.DeleteKey( argv[2] ,argv[3] );
if( FALSE == bReturn )
{
cout << "Delete the [" << argv[3] << "] fail!" << endl;
return 0;
}
cout << "Delete [" << argv[3] << "] value from [" << argv[2] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have three param with \'-delkey\' option!" << endl;
return 0;
}
}
/********************************************************************
* 文件名:main.cpp
* 文件描述:主文件,对封装的注册表操作类进行测试
* 创建人: RainLeaf, 2009年4月10日
* 版本号:1.0
* 修改记录:
*********************************************************************/
#include "RegOperator.h"
#include <iostream>
using namespace std;
void RegOperatorHelp();
int main( int argc, char *argv[])
{
BOOL bReturn;
/* 命令行没有参数则输出帮助提示信息 */
if( 1 == argc )
{
RegOperatorHelp();
return 0;
}
for( int i = 0; i < argc; i ++)
{
assert( argv[i] );
}
/*============================================================
* 分支功能:读取键值
* 参 数:-read RootKey SubKey ValueName
* 参数说明:命令 根键 子键 值的名字
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-read")) )
{
if( 5 == argc )
{
CRegOperator reg;
CString strPrint;
bReturn = reg.SetHKEY( argv[2] );/* 设置当前根键 */
if( FALSE == bReturn )
{
/* 根键设置失败 */
cout << "\nThe 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.Read( argv[4], &strPrint );
if( FALSE == bReturn )
{
cout << "Read [" << argv[4] << "] fail!" << endl;
return 0;
}
/* 读取成功 */
cout << "The [" << argv[4] << "] value is [" << strPrint << "]" << endl;
return 0;
}
else
{
cout << "Warning:Must have four param with \'-read\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:创建子键
* 参 数:-create RootKey SubKey
* 参数说明:命令 根键 子键
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-create")) )
{
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.CreateKey( argv[3] );
if( FALSE == bReturn )
{
cout << "Create the key [" << argv[3] << "] fail!" << endl;
return 0;
}
cout << "Create the key [" << argv[3] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have three param with \'-create\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:创建键值
* 参 数:-write RootKey SubKey ValueName Value
* 参数说明:命令 根键 子键 值的名字 值
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-write")) )
{
if( 6 == 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.Write(argv[4], argv[5]);
if( FALSE == bReturn )
{
cout << "Write [" << argv[4] << "] fail!" << endl;
return 0;
}
cout << "Write [" << argv[5] << "] value into [" << argv[4] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have five param with \'-write\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:删除键值
* 参 数:-delval RootKey SubKey ValueName
* 参数说明:命令 根键 子键 值的名字
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-delval")) )
{
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.DeleteValue( argv[4] );
if( FALSE == bReturn )
{
cout << "Delete the [" << argv[4] << "] fail!" << endl;
return 0;
}
cout << "Delete [" << argv[4] << "] value from [" << argv[3] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have four param with \'-delval\' option!" << endl;
return 0;
}
}
/*============================================================
* 分支功能:删除非空子键
* 参 数:-delkey RootKey SubKey
* 参数说明:命令 根键 子键
* 抛出异常:操作失败,提示信息。
* 作 者:RainLeaf, 2009年4月10日
*============================================================*/
if( 0 == (strcmp(argv[1], "-delkey")) )
{
if( 4 == argc )
{
CRegOperator reg;
bReturn = reg.DeleteKey( argv[2] ,argv[3] );
if( FALSE == bReturn )
{
cout << "Delete the [" << argv[3] << "] fail!" << endl;
return 0;
}
cout << "Delete [" << argv[3] << "] value from [" << argv[2] << "] successfully!" << endl;
return 0;
}
else
{
cout << "Warning:Must have three param with \'-delkey\' option!" << endl;
return 0;
}
}
本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/201906,如需转载请自行联系原作者