win32 注册表操作API
前言
注册表是windows提供给开发者存储轻量级数据的地方。我们可以通过键入regedit
打开注册表.
我们首先像HKEY_CURRENT_USER\Software\\QQBrowse
r写入一个value
值的一个案例
int main()
{HKEY openkey = NULL;//打开或者创建一个注册表keyLONG nRet = RegCreateKey(HKEY_CURRENT_USER, "Software\\QQBrowser", &openkey);if (nRet != ERROR_SUCCESS){cout << "创建失败" << endl;return EXIT_FAILURE;}char ou[] = "hello my value ";//像打开的注册表key句柄写入一个hello为键 hello my value 为值的item//REG_SZ标识写入的类型int reult = RegSetValueEx(openkey, "hello", 0, REG_SZ, (CONST BYTE*)ou, sizeof(ou));if (reult != ERROR_SUCCESS){cout << "写入失败" << endl;return EXIT_FAILURE;}return 0;
}
删除注册表的某一个键
int main()
{HKEY openkey = NULL;LONG nRet = RegCreateKey(HKEY_CURRENT_USER, "Software\\QQBrowser", &openkey);if (nRet != ERROR_SUCCESS){cout << "创建失败" << endl;return EXIT_FAILURE;}char ou[] = "hello my value ";nRet = RegDeleteKey(HKEY_CURRENT_USER, "Software\\QQBrowser");if (nRet != ERROR_SUCCESS){cout << "RegDeleteKey失败" << endl;getchar();return EXIT_FAILURE;}
}
删除键下面的一个value
HKEY openkey = NULL;LONG nRet = RegCreateKey(HKEY_CURRENT_USER, "Software\\alipay、", &openkey);if (nRet != ERROR_SUCCESS){cout << "创建失败" << endl;return EXIT_FAILURE;}nRet = RegDeleteValue(openkey, "alipay");if (nRet != ERROR_SUCCESS){cout << "RegDeleteValue" << endl;return EXIT_FAILURE;}
遍历子键和value
int main()
{HKEY openkey = NULL;LONG nRet = RegCreateKey(HKEY_CURRENT_USER, "Software\\Tencent", &openkey);if (nRet != ERROR_SUCCESS){cout << "创建失败" << endl;return EXIT_FAILURE;}DWORD dwIndex = 0, NameSize = 0, NameCnt = 0, MaxNameLen = 0, Type = 0;DWORD KeySize = 0, KeyCnt = 0, KeyMaxLen = 0, DateSize = 0, MaxDateLen = 0;if (RegQueryInfoKey(openkey, NULL,NULL, NULL,&KeyCnt, //这个键下面的子键数量&KeyMaxLen, //子键名字中最长的名字长度 NULL,&NameCnt,//这个键的value的数量&MaxNameLen,//这个键的所有value中最长的名字长度&MaxDateLen, //所有的value对应的存储数值最大的长度NULL,NULL) != ERROR_SUCCESS){cout << "RegQueryInfoKey 失败" << endl;}char *keyName = new char[KeyMaxLen + 1];for (size_t i = 0; i < KeyCnt; i++){DWORD dwKeyNameLen= KeyMaxLen+1;int result = RegEnumKeyEx(openkey, i, keyName, &dwKeyNameLen, 0, NULL, NULL, NULL);;if (result != ERROR_SUCCESS){cout << "RegEnumKeyEx 失败" << endl;getchar();return EXIT_FAILURE;}cout << i<<"\t"<<keyName << endl;}delete []keyName;RegCloseKey(openkey);}
int main()
{HKEY openkey = NULL;LONG nRet = RegCreateKey(HKEY_CURRENT_USER, "Software\\Tencent", &openkey);if (nRet != ERROR_SUCCESS){cout << "创建失败" << endl;return EXIT_FAILURE;}DWORD dwIndex = 0, NameSize = 0, NameCnt = 0, MaxNameLen = 0, Type = 0;DWORD KeySize = 0, KeyCnt = 0, KeyMaxLen = 0, DateSize = 0, MaxDateLen = 0;if (RegQueryInfoKey(openkey, NULL,NULL, NULL,&KeyCnt, //这个键下面的子键数量&KeyMaxLen, //子键名字中最长的名字长度 NULL,&NameCnt,//这个键的value的数量&MaxNameLen,//这个键的所有value中最长的名字长度&MaxDateLen, //所有的value对应的存储数值最大的长度NULL,NULL) != ERROR_SUCCESS){cout << "RegQueryInfoKey 失败" << endl;}char *keyName = new char[MaxNameLen+1];char *valueName = new char[MaxDateLen+1];for (size_t i = 0; i < NameCnt; i++){DWORD dwKeyNameLen = MaxNameLen+1;DWORD dwKeyNameLen2 = MaxDateLen+1;nRet = RegEnumValue(openkey, i, keyName, &dwKeyNameLen, 0, NULL, (LPBYTE)valueName, &dwKeyNameLen2);;if (nRet != ERROR_SUCCESS){cout << "RegEnumKeyEx 失败" << endl;return EXIT_FAILURE;}cout << i << "\t" << keyName << "\t " << valueName << endl;}delete[]keyName;delete[]valueName;RegCloseKey(openkey);}
win32 注册表操作API相关推荐
- win32 注册表操作
创建键 RegCreateKeyEx int SetRecordVideoSavedDays(int newSavedDays)2 {3 HKEY hSubKey = NULL;4 LONG lRet ...
- delphi 注册表操作(读取、添加、删除、修改)完全手册
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- delphi 注册表操作之(读取、添加、删除、修改)
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- 系统安全-Windows下的注册表操作
注册表 可以说是用于存储计算机所有设置及配置信息的数据库,我们在设置中做出的各种更改归根结底是修改了计算机中的注册表.具体定义如下: 注册表(Registry,繁体中文版Windows操作系统称之为登 ...
- Windows核心编程_注册表操作和小练习程序关联
大家有没有见过就是当我们下载一个软件比如视频播放器 下载之后我们电脑上的视频文件图标都变成了这个视频播放器的图标,然后打开时也是默认调用此视频播放器来播放 下面就给大家介绍如何在Windows平台上实 ...
- QSettings配置读写-win注册表操作-ini文件读写
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSettings配置读写-win注册表操作-ini文件读写 本文地址:http:// ...
- Delphi 注册表操作
Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象:ARe ...
- window注册表操作手册
环境: window 10企业版 .netcore 3.1 vs 2019 16.4.5 控制台程序以管理员身份运行 参照: Windows注册表内容详解 C#操作注册表 一.window注册表简介 ...
- RegistryCallback routine(CmRegisterCallback 注册表操作监控介绍)
RegistryCallback routine 过滤器驱动程序的常规RegistryCallback可以监视,阻止或修改一个注册表操作. 句法 C ++ NTSTATUS CmRegisterCal ...
最新文章
- Nature:功能微生物组研究典范—采用甘露糖苷选择性抑制尿路致病性大肠杆菌...
- 构建自主操作系统,阿里为何失败了?
- php - 数组倒序
- IDEA——找不到或无法加载主类的一种暴力解决方法
- 创新工场2018年夏令营DeepCamp第一套解答笔记
- P5004-专心OI - 跳房子【dp,矩阵乘法】
- java并发编程(二十一)----(JUC集合)CopyOnWriteArraySet和ConcurrentSkipListSet介绍
- e3d教程做logo教程_看了教程还是不会做平面设计?关键的方法给你揭秘!附450集教程...
- CentOS 7 怎样安装或升级最新的内核?
- IT餐馆—第一回 前言
- 金融评分卡项目—4.GBDT模型在流失预警模型中的应用
- 基于Python实现socket远程木马
- 微服务架构之监控预警
- POJ 1625 Censored! (AC自动机 + 高精度 + DP)
- mne进行ica分析
- 【电力电子技术】SEPIC 电路 与 ZETA 电路
- 第三十八章 短语动词
- 技校计算机英语,技校计算机英语的一体化教学论文
- Linux下释放内存
- 3.27下午 口语练习P41