zoukankan      html  css  js  c++  java
  • 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);
    }
     

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

     
     
    标签: 注册表
  • 相关阅读:
    「ROI 2019 Day1」运输 20/19
    「ROI 2018 Day 2」无进位加法
    「ROI 2018 Day 1」量子隐形传态
    「ROI 2018 Day 2」快速排序
    「ROI 2018 Day 1」Innophone (分块+斜率优化)
    「ROI 2017 Day 1」虎 (计算几何)
    [BJ United Round #3] 押韵 [学习笔记]
    「CEOI2020」象棋世界
    CF1375G
    CF1392(div1+div2)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2617056.html
Copyright © 2011-2022 走看看