【C++】查询、创建、设置注册表键值的示例代码

C++操作系统注册表读取默认键值编程 在上面的代码中,我们首先定义了一个HKEY类型的变量hKey,用于接收打开的注册表键的句柄。上述代码演示了如何使用C++编程语言读取注册表中的默认键值。你可以根据自己的需求修改代码,访问其他注册表键或值,并根据具体的返回值和类型进行相应的处理。如果你有任何问题,请随时提问。在编写C++程序时,我们经常需要与操作系统进行交互,读取操作系统的配置信息或者系统设置。在上面的代码中,我们将lpValueName参数设置为NULL,以读取默认键值。最后,我们使用RegCloseKey函数关闭注册表键的句柄。 阅读详情

示例代码将在注册表位置:HKEY_CURRENT_USER\Software\  读写键值

bool LicenseManage::OpenRegKey(HKEY& hRetKey)
{
    if (ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,"Software", &hRetKey))
    {
        return true;
    }
    return false;
}
bool LicenseManage::CreateRegKey(string strSubKey, string strValueName, string strValue)
{
    HKEY hKey;
    HKEY hSubKey;
    if (OpenRegKey(hKey))
    {
        // 创建键
        RegCreateKey(hKey,strSubKey.c_str(), &hSubKey);
        // 设置键值
        if( ERROR_SUCCESS != RegSetValueEx(hSubKey,strValueName.c_str(),0,REG_SZ,(CONST BYTE *)strValue.c_str(),strValue.size()+1))
        {
            return false;
        }
        RegCloseKey(hKey) ; //关闭注册表
        return true;
    }
    return false;
}

bool LicenseManage::QueryRegKey(string strSubKey, string strValueName, string& strValue)
{
    DWORD dwType= 1;//定义数据类型
    DWORD dwLen = MAX_PATH;
    char data[MAX_PATH];
    memset(data,0,sizeof(data));
    HKEY hKey;
    HKEY hSubKey;
    if (OpenRegKey(hKey))
    {
        string strTempKey = "Software\\"+strSubKey;
        if (ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,strTempKey.c_str(), &hSubKey))
        {
            if (ERROR_SUCCESS == RegQueryValueEx(hSubKey,strValueName.c_str(),0,&dwType,(LPBYTE)data,&dwLen))
            {
                strValue = data;
                RegCloseKey(hKey) ; //关闭注册表
                return true;
            }
        }
        RegCloseKey(hKey) ; //关闭注册表
    }
    return false;
}
bool LicenseManage::SetRegKey(string strSubKey, string strValueName, string strValue)
{
    HKEY hKey;
    HKEY hSubKey;
    if (OpenRegKey(hKey))
    {
        string strTempKey = "Software\\"+strSubKey;
        if (ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,strTempKey.c_str(), &hSubKey))
        {
            if (ERROR_SUCCESS == RegSetValueEx(hSubKey,strValueName.c_str(),0,REG_SZ,(LPBYTE)strValue.c_str(),strValue.size()))
            {
                RegCloseKey(hKey) ; //关闭注册表
                return true;
            }
        }
        RegCloseKey(hKey) ; //关闭注册表
    }
    return false;
}


CRegKey 注册表操作 1.简介 CRegKey提供了对系统注册表的操作方法,通过CRegKey类,可以方便的打开注册表的某个分支或子键(CRegKey::Open),可以方便的修改一个键的键值(CRegKey::SetValue),也可以查询某个键的键值(CRegKey::QueryValue),操作完成之后,可以关闭子键(CRegKey::Close)。 要想使用CRegKey类,需要包含头文件atlbase.h 阅读详情

相关推荐

C++注册表操作类简易指南

在设计一个能够操作Windows注册表的C++类时,首先需要定义一系列成员变量,这些变量将用于存储类状态和提供类操作的功能。例如,我们需要至少定义以下私有成员变量:HKEY hKey: 这是一个句柄变量,指向当前操作的注册表项。: 一个宽字符串,用来存储当前要操作的注册表键的路径。: 同样是一个宽字符串,用来存储当前操作的键值名称。: 存储默认键值的无符号整型变量,主要用于在查询不存在的键值时返回一个默认值。

weixin_42284380的博客 845

C/C++操作注册表键值添加/查询/删除详解

https://jingyan.baidu.com/article/3a2f7c2e76744a26aed61140.html C++ 写入注册表_CTLLIN的专栏-优快云博客 C++ 注册表的读写_zhengkangchen的专栏-优快云博客

hanxiaoyong_的博客 2644

VS2019集成AddressSanitizer:C++内存错误检测实战指南

在C++开发中,内存管理是核心挑战之一,涉及堆、栈和全局变量的分配与释放。其原理在于程序运行时对内存地址的访问必须严格遵循分配边界和生命周期规则,否则会导致缓冲区溢出、释放后使用等严重错误。这类问题的技术价值在于直接影响程序的稳定性、安全性和性能,是高质量软件必须攻克的基础难题。应用场景广泛,从嵌入式系统到大型服务器软件,都需要可靠的内存错误检测机制。AddressSanitizer(ASan)作为一种编译时插桩技术,通过影子内存和运行时检查,能精准定位堆缓冲区溢出、释放后使用等隐蔽错误。本文以Visual

weixin_34356310的博客 279

C++读取注册表

C++读注册表

Bobowen的博客 2294

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8543

手把手教你用芯驰X9HP驱动MAX96755/MAX96752点亮智能座舱仪表屏(附完整寄存器配置表)

本文详细介绍了如何使用芯驰X9HP驱动MAX96755/MAX96752实现智能座舱仪表屏的完整开发流程,包括硬件架构解析、关键寄存器配置、Linux BSP集成及调试技巧。通过实战指南和完整寄存器配置表,帮助开发者快速掌握驱动开发核心技术,提升智能座舱系统的显示性能与稳定性。

weixin_30879169的博客 526

C++学习之注册表读取

学习到注册表读取,写个笔记 先上参考:http://www.cnblogs.com/john-h/p/5886870.html 这里说一下子键与键值     代码,读取"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"时,结果和注册表上是不一样的 #include<iostream> #include<wind...

u014101410的博客 8323

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

c++获取注册表中程序的安装路径

首先, 我们来查看注册表在运行里面输入:regedit打开注册表 然后,我们就看到有几个主键 接着,找到。我们今天要测试的注册的键,glireader,这是我自己的程序注册的键,你们可能没有, 看到旁边的URL Protocol了吗,它里面的值就是这个程序的安装路径 下面:我们就用代码来实现获取它的路径 // 读取注册表.cpp : 定义控制台应用程序的入口点。

cqltbe131421的博客 7941

PCL 欧式聚类(C++详细过程版)

为充分了解算法实现的每一个细节和有待改进的地方,使用C++代码对算法实现过程进行复现。

点云侠的博客 2448

【思考模型框架】采用双钻模型:发散(桌面研究/用户访谈)→收敛(需求归类/优先级排序),输出需求规格书、追踪矩阵及产品待办清单。

设计思维双钻模型是一种以用户为中心的需求管理方法,通过"发散-收敛"的双循环确保问题定位准确、方案切实可行。第一钻石(探索→定义)聚焦"找对问题",运用用户访谈、田野调查等方法挖掘真实需求;第二钻石(开发→交付)解决"做对方案",通过原型测试、A/B测试验证可行性。该模型强调低保真验证、多团队协作和真实用户测试,避免资源浪费与伪需求开发。典型应用场景包括产品功能优化、用户体验提升等需要精准落地的需求场景。核心价值在于建立从用户痛点到解决方案的可控闭

奶爸的编程之路,也就一周冷个三天 319

用C++对注册表进行操作

RegCreateKeyEx 通过RegCreateKeyEx函数可以在 .... RegSetValueEx函数可以设置注册表中键的值,如今修改注册表成为继超频之后的又一大热点,许多CFAN通过对注册表的修改使Win98显得更加个性化,诸多报刊杂志也纷纷扯起注册表这面旗帜,令人

kofandlizi的专栏 1532

生成模型实战 | StyleGAN详解与实现

StyleGAN 能够生成非常高分辨率人脸图像的关键在于,在增加分辨率的步骤中逐步增加生成网络和判别网络的复杂性,以便在每一步中,两个模型都可以很好地完成任务。我们学习了如何通过确保每个分辨率的特征由一个独立的输入(称为风格向量)来控制,从而操纵生成图像的风格,以及如何通过将图像之间的风格进行交换来操作不同图像的风格。

盼小辉丶的博客 7611

C/C++注册表【4】键值的获取,设置,删除,枚举

C/C++注册表【4】键值的获取,设置,删除,枚举

司徒荆的博客 2314

OWASP 2025版AI大模型攻击安全风险汇总(攻击方法种类)

提示词注入是大模型最基础、最常见的核心漏洞,攻击者通过构造直接或间接的恶意自然语言输入,篡改大模型原本的正常行为与输出结果。哪怕这类恶意内容对人类是隐藏、不可见的,只要模型能够正常解析读取,就会触发漏洞。它和大家常说的模型“越狱”相关,但并不等同:越狱是提示词注入的极端形式,会直接让模型彻底无视所有内置安全协议,完全脱离管控;而普通提示词注入,更多是针对性篡改模型行为、诱导执行特定操作。

墨痕诉清风的博客 517

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Windows修改注册表、查询注册表、查询注册表Key Value

Windows平台查询、修改注册表的方式如下:已测 .h文件 #pragma once #include <iostream> //#include <Windows.h> #include <afx.h> # include <stdio.h> # include <tchar.h> # include <locale.h> #include <time.h> #include <fstream> #.

小蝈蝈的博客 1400

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Vc 枚举注册表键值名

<br />  void  CEnumRegValueDlg::OnEnum()<br /> {<br />      HKEY     lKey;                       //定义一个键的句柄,用于存储被打开的键<br />      HKEY     hKey;                     //初始的值<br />      CString  psKey;                  //要打开的键的名称<br />      long      IResult; 

倦鸟归时 4615

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C++注册表操作

1. 基础知识 注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分, 1.1 根键 分为5个,分别为: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG 1.2 子键 可以有多个子键和键值项,就像一个目录中可以有多个子目录和多个文件一样。 1.3 键值项 可以理解为......

sinat_41752325的博客 5232

遍历注册表某一子键下的所有键值

// C++11Demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; // QueryKey - Enumerates the subkeys of key and its associated values. // hKe...

weixin_30329623的博客 665

c++读取windows指定注册表中的值

  在程序中使用注册表,不外乎创建、打开、读取、设置、删除这五个常规操作,(要想获得更详细的资料可以参考Visual Studio6.0帮助目录中MSDN Library Visual Studio6.0|Platform SDK|Window Base Services|General Library|Registry条目)。下面我们就来关注这五个接口函数的用法:   一、 创建键RegCrea...

一技旁身 2301

C/C++枚举注册表某项下的所有键值【代码示例】

使用Windows API 函数中的RegOpenKeyEx()函数和RegEnumKeyEx()函数来实现对注册表某项下的所有子项进行枚举。 1、RegOpenKeyEx 函数: 原形:LONG RegOpenKeyEx(               HKEY hKey,     // 要打开主键名               LPCTSTR lpSubKey, // 需要打

技术皮皮虾 4685

用Visual C++实现注册表简单操作

Windows的注册表中包含了Windows的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。在注册表中键可以包括子键和值。我们可以对他做个比喻,键就是目录,而子键和值可以看成文件,这样比喻可能不科学但是很实际。在Windows 98下注册表

xyh321的专栏 590

Windows核心编程 注册表

Windows核心编程 注册表 ,注册表操作相关的API

qq_61553520的博客 2240

c++ 读写注册表

一、说明:      注册表是Windows重要组成部分,注册表记录了大量有关电脑软硬件的信息。注册表中的值通过其名称标识。值名称由与键名相同的字符组成。值本身可以是字符串、二进制数据或者是32位无符号值。在这里我们主要运用以下技巧: (一)、预定义的注册表键。注册表包含了几个预定义键: HKEY_LOCAL_MACHINE 包含描述计算机及其配置的条目。其中包括关于处理器、系统主板

836

Windows注册表的读写操作

本文介绍了Windows注册表的基本知识,以及C++中打开\关闭\查询\修改注册表的常用接口。

_Santiago的博客 3313
上一篇: 【C++】封装使用jsoncpp的类
下一篇: SYSTEMTIME 与 time_t 互转函数
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值