c++读取REG_MULTI_SZ类型注册表
First: run RegQueryValueEx to get type and necessary memory size:
Single byte code:
DWORD type, size;
vector<string> target;
if ( RegQueryValueExA(
your_key, // HKEY
TEXT("ValueName"),
NULL,
&type,
NULL,
&size ) != ERROR_SUCCESS )
return;
if ( type == REG_MULTI_SZ )
{
vector<char> temp(size); if ( RegQueryValueExA(
your_key, // HKEY
TEXT("ValueName"),
NULL,
NULL,
reinterpret_cast<LPBYTE>(&temp[]),
&size ) != ERROR_SUCCESS )
return; size_t index = ;
size_t len = strlen( &temp[] );
while ( len > )
{
target.push_back(&temp[index]);
index += len + ;
len = strlen( &temp[index] );
}
}
Unicode:
DWORD type, size;
vector<wstring> target;
if ( RegQueryValueExW(
your_key, // HKEY
TEXT("ValueName"),
NULL,
&type,
NULL,
&size ) != ERROR_SUCCESS )
return;
if ( type == REG_MULTI_SZ )
{
vector<wchar_t> temp(size/sizeof(wchar_t)); if ( RegQueryValueExW(
your_key, // HKEY
TEXT("ValueName"),
NULL,
NULL,
reinterpret_cast<LPBYTE>(&temp[]),
&size ) != ERROR_SUCCESS )
return; size_t index = ;
size_t len = wcslen( &temp[] );
while ( len > )
{
target.push_back(&temp[index]);
index += len + ;
len = wcslen( &temp[index] );
}
}
c++读取REG_MULTI_SZ类型注册表的更多相关文章
- C++ 读取REG_SZ 、REG_DWORD 、REG_MULTI_SZ 类型注册表值
读取REG_SZ 类型的注册表键值 // 读取 REG_SZ 类型键值的代码 HKEY hKey = NULL; DWORD dwSize = ; DWORD dwDataType = ; LPBYT ...
- ASP.NET中如何读取和写入注册表
直接给源码: 读取注册表内容: RegistryKey regkey=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Window ...
- 【Visual Installer】如何读取与写入注册表信息
引入:using Microsoft.Win32; (1)读取注册表信息 代码: RegistryKey rsg = null; rsg = Registry.LocalMachine.OpenSub ...
- vc++读取文件属性的详细信息描述 通过读取QQ的注册表和EXE路径两种方式
转载:http://www.cnblogs.com/pythonschool/archive/2012/10/18/2729872.html // File: GetFileVersion.cpp / ...
- 10#Windows注册表的那些事儿
引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...
- 【转载】 C#读写注册表
文章地址:https://blog.csdn.net/younghaiqing/article/details/61918968 自Windows95以来的所有Windows版本中,注册表是包含Win ...
- .NET开源类库Nini手册(INI、XML、注册表的配置应用)-中文翻译
目录 1.简介 1.1什么是应用程序配置数据? 1.2问题 1.3介绍Nini 2.入门 2.1一个简单的例子 2.2默认值 2.3设置.保存和删除键 2.4添加和删除配置 2.5键值扩展 3.高级主 ...
- ArcGIS AddIN开发之COM对象写入注册表
做一个交互式绘制文字的工具,希望这次设置的Symbol,下次打开ArcMap时自动调用这个Symbol,并支持对其进行修改. 解决方法是将这个Symbol写入注册表中,每次自动读取上一次设置的Symb ...
- C#读取注册表中二进制类型的值(REG_BINARY)
如需要读取注册表中某个键的值, 例如读取DriverDesc对应的值,一般情况下为String类型,读取代码如下: RegistryKey driverKey = Registry.LocalMach ...
随机推荐
- 求N以内与N互质的数的和
题目连接 /* 求所有小于N且与N不互质的数的和. 若:gcd(n,m)=1,那么gcd(n,n-m)=1; sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和 // ...
- Android 系统编译
最近研究了下Android 的编译系统,下面结合编译我们自己的产品 mobot 来对整个编译系统进行必要的介绍,方便大家今 后对默认编译的修改. 先列出几个觉得重要的Make 文件: build/bu ...
- 栈的java实现和栈的应用
[例子和习题出自数据结构(严蔚敏版), 本人使用java进行实现. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ] 栈的实现 栈是一种先进后出的数据结构, 首先定义了栈需要实现的接口: ...
- js框架——angular.js(2)
1. 模块的利用扩充 模块的名称也可以当做变量使用,例如: <body ng-app> <label><input type="checkbox" n ...
- Java类锁和对象锁实践(good)
一.前言 之前对类锁和对象锁是否是互斥的不是太确定,因此决定编写相关的程序进行实践一下.编写前对相关定义约定约定如下: 1. 类锁:在代码中的方法上加了static和synchronized的锁,或者 ...
- Git学习 -- 删除文件
1 从版本库删除文件 git rm <file> git commit -m "xxx" 2 工作区中文件被误删,但版本库中没有删除,可以恢复到工作区 git chec ...
- JavaScript的异步机制
我们经常说JS是单线程的,比如node.js研讨会上大家都说JS的特色之一是单线程的,这样使JS更简单明了,可是大家真的理解所谓JS的单线程机制吗?单线程时,基于事件的异步机制又该当如何 1 先看下两 ...
- 转:如何让LoadRunner实现多个场景运行?
场景分析: 有3个不同的场景,分别为搜索,下载,上传,其中3个场景执行顺序为按照搜索->下载->上传流程操作:哪么如何让Loadrunner中如何实现多个场景运行: 方法1:利用Loadr ...
- ormlite 多表联合查询
ormlite 多表联合查询 QueryBuilder shopBrandQueryBuilder = shopBrandDao.queryBuilder(); QueryBuilder shopQu ...
- Chapter 1 First Sight——16
I drove around the school, following the line of traffic. 我开车绕学校随着交通线. 我开车穿过校园,紧跟着大部队. I was glad to ...