我用RegEnumValue枚举所有键值时发现只能成功获得部分健值(共有8个键值,只能正确取得其中的三个健,另外几个都是返回一个错误码0x000000ea),不知是什么原因,我应该如何才能枚举所有的键值呢?
for (long dwIndex = 0; dwIndex < dwValueCount; dwIndex++)
{
::RegEnumValue(hKey, dwIndex, lpValueName, &ValueNameLen, 0, NULL,lpValue, &ValueLen);
}
for (long dwIndex = 0; dwIndex < dwValueCount; dwIndex++)
{
::RegEnumValue(hKey, dwIndex, lpValueName, &ValueNameLen, 0, NULL,lpValue, &ValueLen);
}
解决方案 »
- 求救:关于WINDOWS下NET-SNMP的两个问题,在线等答案啊
- 关于调用api函数CreateProcessAsUser报错"error:6 句柄无效"
- 最近有个后缀是.skin的文件,不知道如何编辑,打开里面的资源
- VC访问注册表错误—总是不能打开注册表
- ***可能是CSDN上有史以来最难的一个问题!*** (没敢发到技术区,怕让他们伤了自尊,把那的人气搞下来)
- 请教:有关鼠标操作的简单问题.(win32 API)
- 树状目录列表右键点击新建目录的问题
- 如何进行移位运算
- PDG文件用什么工具打开?
- 紧急求助,如何得到CButton按下、弹起的消息?
- 急!这个函数是DELPHI语法,高手请把这个函数转VC的DLL函数。急丫!
- 那里有《Windows 2000驱动程序开发大全 第1卷 设计指南 》电子版下栽?
函数:列出制定键的值
*/
CString CRegedit::ListValue(CString strKey)
{
CString keyValue; HKEY hkOpen;
hkOpen=GetRegKey(strKey); int nIndexValue=0;
for(;;)
{
char ValueName[256];
byte DataValue[256];
DWORD cbValueName=256;
DWORD cbDataValue=256;
DWORD dwType;
if(ERROR_NO_MORE_ITEMS==
RegEnumValue(
hkOpen,
nIndexValue,
ValueName,
&cbValueName,
NULL,
&dwType,
DataValue,
&cbDataValue)
)
{
RegCloseKey(hkOpen);
break;
}
//keyValue+=AddDataItem(nIndexValue,ValueName,dwType,DataValue);
//keyValue+="\5";
nIndexValue++;
} RegCloseKey(hkOpen);
return keyValue;
}