+ -
当前位置:首页 → 问答吧 → 打开注册表问题

打开注册表问题

时间:2011-12-21

来源:互联网

我用下面的代码,打开并删除子键,但是注册表打开失败,
如果strPath="SYSTEM\\ControlSet001"的话,可以打开成功。
如果strPath="SYSTEM\\ControlSet001\\Enum"下降的注册表的话,则打开失败。
发现【SYSTEM\\ControlSet001】的访问许可属性处full control是被勾选上的,
【SYSTEM\\ControlSet001\\Enum】属性的full control则没有被选上。
我觉得这个可能是导致打开失败的原因,不知道是否正确?
求高手指导如何打开这段注册表,SYSTEM\\ControlSet001\\Enum\\USB\\VID_0403&PID_6001


C/C++ code

CString strPath="SYSTEM\\ControlSet001\\Enum\\USB\\VID_0403&PID_6001";//注册表子键路径
    CRegKey regkey;//定义注册表类对象
    LONG lResult;//LONG型变量-反应结果
    lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS);//打开注册表键 
    if (lResult!=ERROR_SUCCESS)
    {
       AfxMessageBox("open error");
       return;
    }
CString strMyDoc="";
    strMyDoc="A4006VHC";//子键,控制“我的文档”显示
    regkey.DeleteSubKey((LPCTSTR)strMyDoc);//删除子键
    regkey.Close();//关闭注册表 

作者: wasedasai   发布时间: 2011-12-21

失败后,获取错误信息啊
权限不够是不能访问的

作者: ouyh12345   发布时间: 2011-12-21

楼主理解是对的,确实和full control没打开有关。
可以手工修改,也可以通过程序修改,参考http://hi.baidu.com/isbx/blog/item/081377091880c4aa2fddd4dc.html
文中LPSTR SamName = "MACHINE\\SAM\\SAM"; //要修改的SAM项路径
""中就是注册表某键名。

作者: fight_in_dl   发布时间: 2011-12-21

注册表设置了访问权限,所以不能正确读取

作者: oyljerry   发布时间: 2011-12-21

热门下载

更多