Windows核心编程——MFC下注册表操作和管理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Windows核心编程——MFC下注册表操作和管理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3495字,纯文字阅读大概需要5分钟。
内容图文
![Windows核心编程——MFC下注册表操作和管理](/upload/InfoBanner/zyjiaocheng/938/b743291194c548c2ae178abd2520e08b.jpg)
1.注册表
注册表(Registry),是Microsoft Windows中的一个重要的数据库,用于存储系统应用程序的设置信息。
2.注册表操作
系统的配置一般都保存在注册表里,一些软件配置信息也在注册表
Win+R regedit 可以打开windows的注册表编辑工具
如何操作注册表?
相关api:
3.MFC操作注册表
1)添加键值对:
添加键:RegCreateKey()
示例:指定目录下添加键shadow
RegCreateKey HKEY hSubKey; LONG lRet = RegCreateKey( HKEY_CURRENT_USER,//主键 "Software\\shadow", &hSubKey //传出参数 ); if (lRet != ERROR_SUCCESS) { return 0; }
成功添加键:
设置值: RegSetKeyValue()
示例:设置值test
char szValue[] = { "hello" }; lRet = RegSetKeyValue( HKEY_CURRENT_USER, //主键 "Software\\shadow", //子键的路径 "test", //值的名称 REG_SZ, //值的类型 szValue, //值的数据所在的缓冲区 sizeof(szValue) ); if (lRet != ERROR_SUCCESS) { return 0; }
成功添加test:
2)删除数据:
RegDeleteKeyValue() //删除键值对
RegDeleteKey() //删除键
示例:删除test:
lRet = RegDeleteKeyValue( HKEY_CURRENT_USER, //主键 "Software\\shadow", //子键的路径 "test" //值的名称 );
test删除成功:
3)查询数据:
RegEnumValue() //枚举键值信息
RegQueryValueEx() //查询键上有多少个值
RegQueryInfoKey() //查询键
软件配置信息放在注册表,在卸载软件后再安装信息还存在。如
果在自己目录下,卸载后所有信息都会消失。
查询示例:
HKEY hWinRar = NULL; lRet = RegOpenKey(HKEY_CURRENT_USER, "Software\\RegisteredApplications", &hWinRar); QueryKey(hWinRar); #define MAX_KEY_LENGTH 255 #define MAX_VALUE_NAME 16383 void QueryKey(HKEY hKey) { TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name DWORD cbName; // size of name string TCHAR achClass[MAX_PATH] = TEXT(""); // buffer for class name DWORD cchClassName = MAX_PATH; // size of class string DWORD cSubKeys = 0; // number of subkeys DWORD cbMaxSubKey; // longest subkey size DWORD cchMaxClass; // longest class string DWORD cValues; // number of values for key DWORD cchMaxValue; // longest value name DWORD cbMaxValueData; // longest value data DWORD cbSecurityDescriptor; // size of security descriptor FILETIME ftLastWriteTime; // last write time DWORD i, retCode; TCHAR achValue[MAX_VALUE_NAME]; DWORD cchValue = MAX_VALUE_NAME; // Get the class name and the value count. retCode = RegQueryInfoKey( hKey, // key handle achClass, // buffer for class name &cchClassName, // size of class string NULL, // reserved &cSubKeys, // 子键的个数 &cbMaxSubKey, // longest subkey size &cchMaxClass, // longest class string &cValues, // 键所对应的值的个数 &cchMaxValue, // longest value name &cbMaxValueData, // longest value data &cbSecurityDescriptor, // security descriptor &ftLastWriteTime); // last write time // Enumerate the subkeys, until RegEnumKeyEx fails. //遍历键的信息 if (cSubKeys) { printf("\nNumber of subkeys: %d\n", cSubKeys); for (i = 0; i < cSubKeys; i++) { cbName = MAX_KEY_LENGTH; retCode = RegEnumKeyEx(hKey, i, achKey, &cbName, NULL, NULL, NULL, &ftLastWriteTime); if (retCode == ERROR_SUCCESS) { _tprintf(TEXT("(%d) %s\n"), i + 1, achKey); } } } // 遍历值的信息 if (cValues) { printf("\nNumber of values: %d\n", cValues); for (i = 0, retCode = ERROR_SUCCESS; i < cValues; i++) { cchValue = MAX_VALUE_NAME; achValue[0] = '\0'; retCode = RegEnumValue(hKey, i, achValue, &cchValue, NULL, NULL, NULL, NULL); if (retCode == ERROR_SUCCESS) { _tprintf(TEXT("(%d) %s\n"), i + 1, achValue); } } } }
内容总结
以上是互联网集市为您收集整理的Windows核心编程——MFC下注册表操作和管理全部内容,希望文章能够帮你解决Windows核心编程——MFC下注册表操作和管理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。