Windows注册表操作基础代码
Windows注册表操作基础代码
Windows下对注册表进行操作使用的一段基础代码Reg.h:
#pragma once
#include<assert.h>
#include<windows.h>
class Reg
{
HKEY hkey;
public:
void open(HKEY root,char*subKey);//打开注册表键,不存在则创建
void del(HKEY root,char*subKey);//删除注册表键
void close();//关闭注册表键
void setValue(char*name,char*data);//设置注册表值,不存在则创建
void getValue(char*name,char*value);//获取注册表值
void delValue(char*name);//删除注册表值
};
void Reg::open(HKEY root,char*subKey)
{
long lret=RegCreateKeyEx(root,(LPCTSTR)subKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hkey,NULL);
assert(lret==ERROR_SUCCESS);
}
void Reg::del(HKEY root,char*subKey)
{
long lret=RegDeleteKey(root,(LPCTSTR)subKey);
assert(lret==ERROR_SUCCESS);
}
void Reg::close()
{
long lret=RegCloseKey(hkey);
assert(lret==ERROR_SUCCESS);
}
void Reg::setValue(char*name,char*data)
{
long lret=RegSetValueEx(hkey,(LPCTSTR)name,0,REG_SZ,(BYTE*)data,(DWORD)strlen(data));
assert(lret==ERROR_SUCCESS);
}
void Reg::getValue(char*name,char*value)
{
long lret=RegQueryValueEx(hkey,(LPCTSTR)name,0,(LPDWORD)REG_SZ,(BYTE*)value,(LPDWORD)strlen(value));
assert(lret==ERROR_SUCCESS);
}
void Reg::delValue(char*name)
{
long lret=RegDeleteValue(hkey,(LPCTSTR)name);
assert(lret==ERROR_SUCCESS);
}
#include<assert.h>
#include<windows.h>
class Reg
{
HKEY hkey;
public:
void open(HKEY root,char*subKey);//打开注册表键,不存在则创建
void del(HKEY root,char*subKey);//删除注册表键
void close();//关闭注册表键
void setValue(char*name,char*data);//设置注册表值,不存在则创建
void getValue(char*name,char*value);//获取注册表值
void delValue(char*name);//删除注册表值
};
void Reg::open(HKEY root,char*subKey)
{
long lret=RegCreateKeyEx(root,(LPCTSTR)subKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hkey,NULL);
assert(lret==ERROR_SUCCESS);
}
void Reg::del(HKEY root,char*subKey)
{
long lret=RegDeleteKey(root,(LPCTSTR)subKey);
assert(lret==ERROR_SUCCESS);
}
void Reg::close()
{
long lret=RegCloseKey(hkey);
assert(lret==ERROR_SUCCESS);
}
void Reg::setValue(char*name,char*data)
{
long lret=RegSetValueEx(hkey,(LPCTSTR)name,0,REG_SZ,(BYTE*)data,(DWORD)strlen(data));
assert(lret==ERROR_SUCCESS);
}
void Reg::getValue(char*name,char*value)
{
long lret=RegQueryValueEx(hkey,(LPCTSTR)name,0,(LPDWORD)REG_SZ,(BYTE*)value,(LPDWORD)strlen(value));
assert(lret==ERROR_SUCCESS);
}
void Reg::delValue(char*name)
{
long lret=RegDeleteValue(hkey,(LPCTSTR)name);
assert(lret==ERROR_SUCCESS);
}
对注册表操作需要保证编译器处于管理员权限,否则无法正常执行注册表操作。
作者:Florian
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则作者保留追究法律责任的权利。
若本文对你有所帮助,您的 关注 和 推荐 是我分享知识的动力!
若本文对你有所帮助,您的 关注 和 推荐 是我分享知识的动力!