4334|6

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么RegDeleteKey()删除不了注册表项了 [复制链接]

我用RegCreateKeyEx()生成了一个新的注册表项,但是紧接着调用RegDeleteKey()却删除不了了,我是写的一个小程序试的,不知道是不是不能紧接着删.
另人诧异的是当关掉程序后,再启动,进入程序就可以直接删除了,不知道这是为什么,有碰到这种事儿的吗,下面是我的程序片段:
void CSecond_HWDlg::OnButton2()
{
        // TODO: Add your control notification handler code here
        DWORD dwDISP;
        DWORD ret;
        ret=RegCreateKeyEx(HKEY_LOCAL_MACHINE,L"Drivers\\BuiltIn\\SY",0,L"",0,KEY_READ|KEY_WRITE|KEY_ALL_ACCESS,NULL,&h_KEY,&dwDISP);
        if(ret==ERROR_SUCCESS)
                        MessageBox(_T("create success"));
                else
                        MessageBox(_T("create false"));

}

void CSecond_HWDlg::OnButton3()
{
        // TODO: Add your control notification handler code here
        DWORD re;
        re=RegDeleteKey(HKEY_LOCAL_MACHINE,L"Drivers\\BuiltIn\\SY");
                if(re==ERROR_SUCCESS)
                        MessageBox(_T("delete success"));
                else
                        MessageBox(_T("delete false"));
}

最新回复

这个可能和CE系统的哪个部分有关呢,为什么以前建立的子键删除不了呢  详情 回复 发表于 2007-12-22 13:03
点赞 关注

回复
举报

90

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
RegDeleteKey的用法错误了吧
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
可以去我的BLOG看看,有关于注册表操作的类。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
to 91program:
多谢大侠指点.
我看了你的博客从复制了创建和删除的代码,如下是我的程序:
HKEY h_KEY;
WCHAR * szRegKey=L"Drivers\\BuiltIn\\ZZ";

void CSecond_HWDlg::OnButton2()
{
        // TODO: Add your control notification handler code here
        DWORD dwDisp;
        DWORD ret;
    ret=RegCreateKeyEx(HKEY_LOCAL_MACHINE,szRegKey,\
                0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&h_KEY,&dwDisp);
        if(ret==ERROR_SUCCESS)
            MessageBox(_T("create success"));
        else
            MessageBox(_T("create false"));
}
void CSecond_HWDlg::OnButton3()
{
        // TODO: Add your control notification handler code here
        DWORD re;
        //re=RegOpenKeyEx(HKEY_LOCAL_MACHINE,szRegKey,0,KEY_WRITE,&h_KEY);
        //if(re==ERROR_SUCCESS)
        //                MessageBox(_T("open success"));
        //        else
        //                MessageBox(_T("open false"));
        if(!h_KEY)
    {
        return ;
    }
        //re=RegDeleteKey(HKEY_LOCAL_MACHINE,L"Drivers\\BuiltIn\\SY");
        re=RegDeleteKey(h_KEY,szRegKey);
        if(re==ERROR_SUCCESS)
            MessageBox(_T("delete success"));
        else
            MessageBox(_T("delete false"));
}

最上的是两个全局的变量,下面的是两个界面按钮对应的函数.但运行了一下还是不行,不管L"Drivers\\BuiltIn\\ZZ"下有没有键值就是删不了,这是不是跟定制的系统有关呢,我的是hive的注册表.请大侠指教
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个问题解决了,但又出了个问题:
子键删除不掉的原因是因为没有关闭,在RegDeleteKey()加了句RegCloseKey(h_KEY)就可以了也不管子键是否有键值项,但是问题又来了,如果是我刚刚建立的子键,则可以删掉,但是以前建立的子键却删不掉,不知为什么。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
这就不是程序的问题,是CE系统的问题
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

7
 
这个可能和CE系统的哪个部分有关呢,为什么以前建立的子键删除不了呢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/5 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表