用API循环看注册表的子键,但是有问题,求教。。
#include <stdio.h>
#include <windows.h>
void s(HKEY hkey)
{
DWORD cn,subkey;
char TT[1024];
unsigned long a;
DWORD i=0;
RegQueryInfoKey(hkey,0,0,0,&cn,0,0,&subkey,0,0,0,0);
if(cn)
{
printf("cn=%d\n",cn);
for(;i<cn;i++)
{
//printf("i==%d\n",i);
if(RegEnumKeyEx(hkey,i,TT,&a,0,0,0,0)==ERROR_SUCCESS)
printf("第%d个子键名【%s】\n",i,TT);
}
}
if(subkey)
{
int i;
char a[1024];
DWORD b;
for(i=0;i<(int)subkey;i++)
{
if(RegEnumValue(hkey,i,a,&b,0,0,0,0)==ERROR_SUCCESS)
{
printf("第%d个键值名【%s】..\n",i,a);
}
}
}
}
int main()
{
HKEY hkey;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hkey)==ERROR_SUCCESS)
{
//printf("zz\n");
/*if(RegCreateKey(hkey,"aaa",&h)==ERROR_SUCCESS)
{
printf("aa\n");
RegDeleteValue(h,"rt");
}*/
s(hkey);
}
return 0;
}
键下的子键如果有5个的话,只出现两个,就没了。。子键名也不能完全列举出来。这是什么情况?
顺便问下:我怎么删除不了子键啊?说我无权操作。。我是管理员身份登录的,怎么办
[解决办法]
如需要阅读该回复,请登录或注册CSDN!