bool CRegistry::DeleItem(CString Root,CString Child, CString Item)//删除项1的值可以成功
{
HKEY hroot;
RegOpenKeyEx(GetHkey(Root),Child,0,KEY_ALL_ACCESS,&hroot);
if(ERROR_SUCCESS==RegDeleteValue(hroot,(const char *)Item))
{
return true;
}
else
{
return false;
}
RegCloseKey(hroot);
}bool CRegistry::DeleKey(CString Root,CString Child) //删除键不成功
{
    HKEY hroot;
RegOpenKeyEx(GetHkey(Root),Child,0,KEY_ALL_ACCESS,&hroot);
if(ERROR_SUCCESS==RegDeleteKey(hroot,(const char *)Child))
{
return true;
}
else
{
return false;
}
RegCloseKey(hroot);
}

解决方案 »

  1.   

    是不是权限不够,用GetLastError看是什么错误代码。
      

  2.   

    pa=RegDeleteKey(hroot,(const char *)Child);
    if(pa==0)
    {
    return 0;
    }
    else
    {
    return pa;
    }
    返回结果是2,是什么原因呢?
      

  3.   


    HKEY hroot;
    int pa;
    RegOpenKeyEx(GetHkey(Root),Child,0,KEY_ALL_ACCESS,&hroot);
    pa=RegDeleteKey(hroot,(const char *)Child);
    if(pa==0)
    {
    return 0;
    }
    else
    {
    return pa;
    }
    RegCloseKey(hroot);
    GetHkey(Root)结果为HKEY_CURRENT_CONFIG
    Child结果为1
    这样有什么问题吗??好像网上都是这样的
      

  4.   

    HKEY_CURRENT_USER下无法进行子键和项的创建,修改和删除是什么原因,在网上看了一下说是权限不够受保护了,是因为我安装了360吗?
    我打开用的是KEY_ALL_ACCESS最高权限啊!这样的话有什么办法不?
      

  5.   

    将软件的权限设置为系统管理员权限就可以了
    http://blog.csdn.net/sysprogram/article/details/6710092