如何枚举注册表下的一个键下的所有子键呢! 谢谢各位了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 RegEnumKeyEx()这个 函数如何使用呢,有没有代码 下面是VC中完整的可运行程序:#include "stdafx.h"#include <stdio.h>#include <windows.h>#define SOFTPATH "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"// 功能:列出指定键下的所有子键名BOOL MyEnumKey(LPTSTR szKeyPath){ HKEY hKey; LONG result; // 打开注册表 result = ::RegOpenKeyEx (HKEY_LOCAL_MACHINE, szKeyPath, 0, KEY_READ, &hKey); if (result != ERROR_SUCCESS) { return FALSE; } TCHAR szKey[MAX_PATH]; LPTSTR lpName = szKey; DWORD dwIndex = 0; // 用于列举时的递增索引 while (1) { memset(szKey, 0, sizeof(szKey)); // 列举指定键下的所有子键, lpName用于接收子键的名字 result = RegEnumKey(hKey, dwIndex++, lpName, MAX_PATH+1); if (result == ERROR_NO_MORE_ITEMS) { break; // 所有子键已被列举完毕 } if (result != ERROR_SUCCESS) { break; } // 显示 printf("%03d: keyName = %s\r\n", dwIndex, szKey); } // 关闭注册表 ::RegCloseKey(hKey); return TRUE;}int main(int argc, char* argv[]){ MyEnumKey(SOFTPATH); getchar(); return 0;} vector::sort报错 关于网通从拨号上网改为代理上网 为了一个Socket断言错而困惑 *COM组件: 重复包含idl时, 发生重定义怎么办? sdk下如何更改按钮背景颜色! 各位VC大侠,帮帮忙.分不够可以开帖再加! 如何解决多语言编程? 《南方周末》:一批“中国脊梁”的凄凉晚景(图)(1) 为什么这样不能结束线程? 如何编写一个计算表达式的function?请各位给小弟提供线索或算法,谢谢啦! avi文件中MainAVIHeader的dwMaxBytesPerSec怎样填 Bitmap资源释放的问题,高分
#include <stdio.h>
#include <windows.h>#define SOFTPATH "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"// 功能:列出指定键下的所有子键名
BOOL MyEnumKey(LPTSTR szKeyPath)
{
HKEY hKey;
LONG result;
// 打开注册表
result = ::RegOpenKeyEx (HKEY_LOCAL_MACHINE, szKeyPath, 0, KEY_READ, &hKey);
if (result != ERROR_SUCCESS)
{
return FALSE;
}
TCHAR szKey[MAX_PATH];
LPTSTR lpName = szKey;
DWORD dwIndex = 0; // 用于列举时的递增索引
while (1)
{
memset(szKey, 0, sizeof(szKey));
// 列举指定键下的所有子键, lpName用于接收子键的名字
result = RegEnumKey(hKey, dwIndex++, lpName, MAX_PATH+1); if (result == ERROR_NO_MORE_ITEMS)
{
break; // 所有子键已被列举完毕
} if (result != ERROR_SUCCESS)
{
break;
}
// 显示
printf("%03d: keyName = %s\r\n", dwIndex, szKey);
}
// 关闭注册表
::RegCloseKey(hKey);
return TRUE;
}int main(int argc, char* argv[])
{
MyEnumKey(SOFTPATH); getchar(); return 0;
}