读写注册表
2009-01-16 16:00
141 查看
读:C/C++ code
#include <afx.h>
#include <windows.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
HKEY hKEY;
LPCTSTR data_Set="SOFTWARE//Microsoft//WZCSVC//Parameters//Interfaces//{2DA2A52D-F802-4DE6-B192-4B99AF59CA2A}//";
long ret=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY);//打开表项
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法打开有关的hKEY"<<endl;
exit(1);
}
LPBYTE result=new BYTE[128];
DWORD type=REG_BINARY;//二进制类型
DWORD len=128;//定义数据长度
ret=::RegQueryValueEx(hKEY,"ActiveSettings",NULL,&type,result,&len);//查询项值
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法查询有关的注册表信息"<<endl;
exit(1);
}
ofstream out("reg", fstream::out|fstream::binary);//保存项值的文件
if(!out)
{
cerr<<"reg.txt error"<<endl;
exit(1);
}
out<<result;//写出项值
delete [] result;//释放
::RegCloseKey(hKEY);//关闭表项
return 0;
}
写:
C/C++ code
#include <afx.h>
#include <windows.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
HKEY hKEY;
LPCTSTR data_Set="SOFTWARE//Microsoft//WZCSVC//Parameters//Interfaces//{2DA2A52D-F802-4DE6-B192-4B99AF59CA2A}//";
FILE* fp = fopen("reg", "rb");//打开文件
if(!fp)
{
cerr<<"reg.txt error"<<endl;
exit(1);
}
DWORD start = ftell(fp);
fseek(fp, 0, SEEK_END);
DWORD len = ftell(fp) - start;//获得文件大小
fseek(fp, start, SEEK_SET);
cout<<len<<endl;
LPBYTE data = new BYTE[len];
fread(data, len, 1, fp);
DWORD type =REG_BINARY;//二进制类型
LONG ret=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WRITE,&hKEY);//打开表项
if(ret!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
cerr<<"错误:无法打开有关的hKEY"<<endl;
exit(1);
}
ret=::RegSetValueEx(hKEY,"ActiveSettings",NULL,type,data,len);//写项值
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法设置有关的注册表信息"<<endl;
exit(1);
}
delete [] data;
::RegCloseKey(hKEY);
return 0;
}
#include <afx.h>
#include <windows.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
HKEY hKEY;
LPCTSTR data_Set="SOFTWARE//Microsoft//WZCSVC//Parameters//Interfaces//{2DA2A52D-F802-4DE6-B192-4B99AF59CA2A}//";
long ret=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY);//打开表项
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法打开有关的hKEY"<<endl;
exit(1);
}
LPBYTE result=new BYTE[128];
DWORD type=REG_BINARY;//二进制类型
DWORD len=128;//定义数据长度
ret=::RegQueryValueEx(hKEY,"ActiveSettings",NULL,&type,result,&len);//查询项值
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法查询有关的注册表信息"<<endl;
exit(1);
}
ofstream out("reg", fstream::out|fstream::binary);//保存项值的文件
if(!out)
{
cerr<<"reg.txt error"<<endl;
exit(1);
}
out<<result;//写出项值
delete [] result;//释放
::RegCloseKey(hKEY);//关闭表项
return 0;
}
写:
C/C++ code
#include <afx.h>
#include <windows.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
HKEY hKEY;
LPCTSTR data_Set="SOFTWARE//Microsoft//WZCSVC//Parameters//Interfaces//{2DA2A52D-F802-4DE6-B192-4B99AF59CA2A}//";
FILE* fp = fopen("reg", "rb");//打开文件
if(!fp)
{
cerr<<"reg.txt error"<<endl;
exit(1);
}
DWORD start = ftell(fp);
fseek(fp, 0, SEEK_END);
DWORD len = ftell(fp) - start;//获得文件大小
fseek(fp, start, SEEK_SET);
cout<<len<<endl;
LPBYTE data = new BYTE[len];
fread(data, len, 1, fp);
DWORD type =REG_BINARY;//二进制类型
LONG ret=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WRITE,&hKEY);//打开表项
if(ret!=ERROR_SUCCESS)//如果无法打开hKEY,则中止程序的执行
{
cerr<<"错误:无法打开有关的hKEY"<<endl;
exit(1);
}
ret=::RegSetValueEx(hKEY,"ActiveSettings",NULL,type,data,len);//写项值
if(ret!=ERROR_SUCCESS)
{
cerr<<"错误:无法设置有关的注册表信息"<<endl;
exit(1);
}
delete [] data;
::RegCloseKey(hKEY);
return 0;
}
相关文章推荐
- 应用 WSH 读写注册表和建立快捷方式
- C++如何读写注册表
- QSettings Windows读写注册表小测试程序
- 注册表读写
- 离线方式读写WINDOWS注册表
- 读写注册表的封装
- Delphi中读写注册表
- Qt读写注册表和ini文件
- 【VS调试】C#读写Windows 7注册表时抛出“不允许所请求的注册表访问权”的解决办法
- 读写注册表
- 新系统环境下读写注册表
- C#操作注册表(读写)
- Windows驱动编程 文件读写 以及注册表操作
- .net读写注册表
- 读写注册表
- vc下读写注册表
- C++读写注册表
- Vista读写注册表
- Operating the registry help class(C#读写注册表操作)
- C#读写注册表