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);
}

   对注册表操作需要保证编译器处于管理员权限,否则无法正常执行注册表操作。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能计算时代

Designing your SaaS Database for Scale with Postgres

? If you’re building a SaaS application, you probably already have the notion o...

2154
来自专栏西二旗一哥

React-native - Install & Lauch & Filling Holes

751
来自专栏技术小黑屋

Issues About Installing Octopress

Actually I am fresh to Write Blog with Octopress in Github Pages.According to th...

1102
来自专栏技术小黑屋

Package Stopped State Since Android 3.1

Since Android 3.1, Android has introduced a LaunchControl mechanism. It’s call S...

971
来自专栏竹清助手

安装MariaDB 无法登录解惑

Debian 9 installed mariadb-server , the phpmyadmin can't login and terminal too,...

1433
来自专栏H2Cloud

Tips for thrift

Introduction I have designed and developed game servers successfully with thrift...

3555
来自专栏Android 开发学习

Android studio 2.2 JNI ffmpeg 简单的播放器(这里只有视频解码)include "libavcodec/avcodec.h"include "libavformat/avf

3933
来自专栏运维

linux文件树

以前有意找这方面的资料,今天突然发现在系统中就有 linux系统用man hier solaris用man  filesystem 其结果如下     ...

972
来自专栏一个会写诗的程序员的博客

$ gradle packageDebug --stacktrace error: top-left corner pixel must be either opaque white or trans

$ gradle packageDebug --stacktrace error: top-left corner pixel must be either ...

1122
来自专栏张善友的专栏

MonoDroid相关资源

2月版的Visual Studio杂志上MonoDroid文章,写的是让开发人员可以使用C#语言和Mono虚拟机为Android移动操作系统编写应用程序的Mon...

1917

扫码关注云+社区