在WIN7中发现
RegQueryInfoKey中枚举的子键数目与注册表中看到的不一至,不知道是何原因,记录如下。
#include "stdafx.h"
#include <windows.h>
int main(int argc, char* argv[])
{
//CString str_path=_T("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Svchost");
HKEY key;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Svchost",0,KEY_ENUMERATE_SUB_KEYS|KEY_QUERY_VALUE,&key)==ERROR_SUCCESS)
{
}else{
OutputDebugStringA("RegOpenKeyEx !=ERROR_SUCCESS");
}
DWORD dwIndex=0,NameSize=0,NameCnt=0,MaxNameLen=0,Type=0;
DWORD KeySize=0,KeyCnt=0,KeyMaxLen=0,DateSize=0,MaxDateLen=0;
if(RegQueryInfoKey(key,NULL,NULL,NULL,&KeyCnt,&KeyMaxLen,NULL,&NameCnt,&MaxNameLen,&MaxDateLen,NULL,NULL)!=ERROR_SUCCESS)
{
OutputDebugStringA("RegQueryInfoKey Error \n");
}
printf("这里打印出子键的数目与注册表中看到的不一样是何原因:%d\r\n",KeyCnt);
getchar();
return 0;
}