枚举注册表中的子键

HHY55   2008-7-7 15:16 楼主
向HKEY_CURRENT_USER 主键新增加了键"MySoftware",并向其成功添加了多个键值,现想枚举
"MySoftware"下的键值,并不成功
        HKEY hOpenKey;
        long lResult = 0;
        DWORD dwKeyValueType = 0;
        DWORD dwKeyValueLength =0;
        LPCTSTR keyName = L"MySoftware";//\\UserKey
        lResult = RegOpenKeyEx(HKEY_CURRENT_USER,keyName,0,0,&hOpenKey);
        if(lResult == ERROR_SUCCESS)
        {
                CString strKeyName;
                TCHAR szKeyName[256];
                ZeroMemory(szKeyName,256*2);//lstrcpy(szKeyName,_T("MySoftware\\UserKey"));
                DWORD i=1;
                do
                {
                        DWORD dwKeyNameLength =256*2;
                        lResult = RegEnumKeyEx(hOpenKey,i,szKeyName,&dwKeyNameLength,0,NULL,NULL,NULL);
                        if(lResult != ERROR_SUCCESS)
                        {
                                break;
                        }
                        strKeyName = szKeyName;
                        lstKeyName.AddTail(strKeyName);
                        i++;
                } while(lResult != ERROR_NO_MORE_ITEMS);

        }
如果将RegEnumKeyEx()中参数hOpenKey换为HKEY_CURRENT_USER,可以枚举HKEY_CURRENT_USER下的键值,枚举"MySoftware"下的键值就不成功,请各位指点,谢谢!

回复评论 (8)

怎么没人回复?
点赞  2008-7-8 08:44
先看看想枚举的东东在,还是不在?如果不在,当然不成功。
点赞  2008-7-8 11:03
要枚举的东西再呀,可以通过RegQueryValueEx获取要枚举的键和键值
点赞  2008-7-8 11:44
枚举key和枚举value是不一样的。

lz是MySoftware插入了key还是value?
点赞  2008-7-8 13:17
在MySoftware中插入了几个key和对应的value ,我想枚举MySoftware下的key
点赞  2008-7-8 13:52
返回什么错误?
点赞  2008-7-8 14:14
没有任何错误,就是枚举不到键值,要是将RegEnumKeyEx()中参数hOpenKey换为HKEY_CURRENT_USER,可以枚举HKEY_CURRENT_USER下的键值
点赞  2008-7-8 16:37
GetLastError()也不行?
点赞  2008-7-8 16:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复