关于WinCE调用RegDeleteKey不能删除注册表项的问题

026、传感器校准:加速度计校准 本文详细介绍了无人机飞控系统中加速度计的校准方法。作者从一次炸机事故引入,强调加速度计校准的重要性。文章首先解释了加速度计测量原理和误差来源,包括零偏、尺度因子和交叉轴耦合。重点介绍了两种校准方法:六位置法利用重力作为参考,操作简单但精度有限;椭球拟合通过采集大量数据点进行最小二乘拟合,精度更高但实现复杂。文章还指出温度补偿这一常被忽视的关键因素,并分享了实际调试中的经验教训,包括采样时长、安装误差、验证方法等。最后建议初学者从六位置法入手,逐步优化校准精度,强调良好的校准是飞控性能的基础。 阅读详情

在写一个WinCE注册表操作的时候,调用RegDeleteKey函数却不能删除注册表项,始终返回5的错误(ACCESS DENY)。查了一下,有的说是什么权限的问题,操作的时候都是先打开注册表,如果打开成功,即调用RegDeleteKey删除此键,其实这都是不对的,经过反复查看其文档介绍,终于在一个不起眼的句子中找到了答案。下面先介绍一个此函数,直接贴原文。

RegDeleteKey (Windows CE 5.0)

Windows CE 5.0
This topic has not yet been rated - Rate this topic
Send Feedback

This function recursively deletes all subkeys of a named subkey of a specified registry key.

A remote application interface (RAPI) version of this function exists, and it is called CeRegDeleteKey (RAPI).

LONG RegDeleteKey( 
  HKEY hKey, 
  LPCWSTR lpSubKey 
);
Parameters
hKey
[in] Handle to a currently open key or one of the following predefined reserved handle values:
  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS

The key specified by the lpSubKey parameter must be a subkey of the key identified by hKey.

The access rights of this key do not affect the delete operation. 

lpSubKey
[in] Pointer to a null-terminated string specifying the name of the key to delete. This parameter cannot be NULL.
Return Values

ERROR_SUCCESS indicates success. A nonzero error code defined in Winerror.h indicates failure. To get a generic description of the error, call FormatMessage with the FORMAT_MESSAGE_FROM_SYSTEM flag set. The message resource is optional; therefore, if you callFormatMessage it could fail.

Remarks

If the function succeeds, RegDeleteKey removes the specified key from the registry. The entire key, including all of its values, is removed. An application cannot call RegDeleteKey for a key that an application currently has open.

To open the key, use the RegCreateKeyEx or RegOpenKeyEx function.

注意到文中的三句话: The access rights of this key do not affect the delete operation. 

Handle to a currently open key or one of the following predefined reserved handle values

An application cannot call RegDeleteKey for a key that an application currently has open.

就是说,键的访问权限不影响RegDeleteKey的删除操作,对于预先定义好的键值,不能在一个已经打开的键上调用RegDeleteKey,否则会报5的错误,即无需打开再删除,而是直接调用此函数删除键值。如下为例子:

要删除的键值为:

HKEY_LOCAL_MACHINE/Services/FinServ

代码为:
HKEY RootKey = HKEY_LOCAL_MACHINE;
CString strSubKey = _T("\\Services\\FinServ");
long nRet = 0;

nRet = RegDeleteKey(RootKey,strSubKey);

if(nRet== ERROR_SUCCESS)
{
//删除成功
}



Claude Code 100个真实案例 - 用AI批量清洗Excel脏数据(10万行3分钟搞定) 本案例展示如何使用 Claude Code 搭建一个强大的 Excel 数据清洗工具。支持自动检测和处理空值、重复行、格式错误、异常值等常见脏数据问题,批量处理10万行数据只需3分钟。 阅读详情

相关推荐

antdv-<a-form>的使用

是 Ant Design Vue 中用于创建表单的组件,提供了一种结构化的方式来收集用户输入。它支持多种布局、验证、数据绑定等功能,非常适合用于处理用户输入和提交数据。

2302_81312344的博客 2619

关于RegDeleteKey无法删除注册表项

<br />最近想想貌似自己的的想法还不少,所以一直在做东西。由于没有经验所以进展比较慢,但每次看到自己的成果时都会无比的激动,这种感觉是美妙的,其实热爱一件事情,你就会感到是你在享受做这件事的过程结果,而不是这件事本身在玩弄你,兴趣是学习的动力。好了不吹了进入正题。<br />最近在做一个程序的时候,需要删除一项注册表项,这个注册表项包含子项。由于没有这个API编写的经验,所以走了不少弯路,呵呵原谅一个菜鸟在这边大放厥词把。<br />我最先想到的函数是RegDeleteKey,并觉得一个注册表的删除能难

yiyefangzhou24的专栏 1万+

机械臂的运动学分析-工业机器人

机械臂的运动学是研究机械臂各连杆坐标系之间的运动关系,是对机械臂进行运动控制的基础。本章分析了所设计的六自由度机械臂的运动学。理论上六自由度机械臂的工作空间是一个近似球形区域,能够覆盖机械臂所在的位置,但由于机械臂关节的运动范围受到限制,机械臂末端会存在一些不能到达的工作死区,使得机械臂的工作范围和灵活性受到限制。理论上六自由度机械臂的工作空间是一个近似球形区域,能够覆盖机械臂所在的位置,但由于机械臂关节的运动范围受到限制,机械臂末端会存在一些不能到达的工作死区,使得机械臂的工作范围和灵活性受到限制。

qq_59137727的博客 6649

Delphi的TRegistry注册表类方法详解

Delphi的TRegistry注册表类方法详解 ●GetDataInfo方法Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinte

zou5655的专栏 1527

dolphinscheduler服务注册中心源码解析(一)服务注册与发现整体设计

下一篇文章我们开始讲解dolphinscheduler基于Zookeeper实现注册中心的源码解析。

最爱嫣夜来 376

Python 爬虫教程:企业官网基本信息抓取

本文介绍了使用Python爬虫技术抓取企业官网信息的方法,包括公司名称、简介、联系方式、地址、产品及新闻等数据。通过Requests和BeautifulSoup库实现网页请求与解析,并利用Pandas存储数据为CSV文件。同时提供了应对反爬虫机制(如设置User-Agent、代理IP池、延迟请求等)的解决方案,帮助高效获取企业公开数据。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1861

API注册表函数

 2007年03月27日 星期二 16:28所谓 API(Application Programing Interface) 是 Windows 提供的一个32位环境下的应用程序编程接口,其中包括了众多的函数,提供了相当丰富的功能。我们在编制应用程序时,可以调用其中的注册表函数来对注册表进行操作以实现我们需要的功能。Windows API 中可用于注册表的函数一共有二十

lugz1981的专栏 712

交货单冲销发货过账的正确姿势:用 VL09 与 ABAP 批量反冲 Goods Issue

摘要 本文详细解析了SAP系统中VL09事务码的技术实现与业务应用。VL09用于反冲发货的货物移动,通过标准冲销路径(移动类型602冲销601)确保单据链路一致、状态机正确回退和业务规则生效。文章对比了经典VL09与Fiori应用在不同SAP产品形态中的位置,并针对STO场景提供了ME23N验证方法。核心内容包括WS_REVERSE_GOODS_ISSUE函数模块的调用要点、必须COMMIT的原因(SAP LUW机制),以及处理Handling Unit等限制条件的注意事项。最后给出了将VL09工程化的项目

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 594

【C++builder delphi project rule not found 解决方法 】【注册表 DeleteKey 失效 问题】

一、问题提出:当我们用windows自带的notepad或者文档编辑器打开BCB或者delphi的bpr工程文件并且保存后,由于notepad不支持utf-8编码。所以导致文件编码出错,BCB和delphi将无法识别。解决方案:只需要用文件编辑器UltraEdit打开一个完好的bpr文件,删除掉内容,然后把损坏的bpr文件内容复制到打开的bpr文件中,保存。然后把该保存的bpr文件

tbwork 3220

2025美赛E题为农业留出空间(附代码+全保姆教程)Making Room for Agriculture

有机农业的核心在于减少化学投入,促进自然控制和可持续性。变量定义CCC: 作物种群III: 害虫种群PPP: 天然捕食者种群(蝙蝠、鸟类等)BBB: 生物多样性水平(以种类数量表示)SSS: 土壤健康指数(影响植物繁殖与作物生长)EEE: 农业生态系统的整体稳定性。

博客 1496

【C++】开源:ncurses终端TUI文本界面库

ncurses配置使用(TUI)

DevFrank的博客 3171

32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]

最近又有一个32bit的程序需要在Windows 64bit操作系统下对注册表操作进行兼容。经过实践,在此写下心得。备注: 此32bit的程序是 DELPHI 程序

其实我不是代码教父,我只是猪头三 5732

【已解决】飞牛nas(fnOS)异常断电导致硬盘未挂载(无法挂载),系统内部错误修复、救回数据全流程!(含更新系统后外接 NTFS 格式硬盘丢失的修复方法)

fnOS 飞牛NAS遭遇非正常断电后,存储空间显示「未挂载」或更新系统后外接 NTFS 格式硬盘丢失,点击挂载提示「系统内部错误」!💥 博主已经完美恢复,本文记录了相关的解决方案,帮您恢复或最大程度保住重要数据🎉

XiaoqiangClub的博客 2254

windows API一日一练(5)

今天稍微查阅了一下注册表编程的相关内容,下面就将所见所闻写出来罢。      首先介绍一下注册表的一些基础知识,下图便是微软提供的注册表编辑器结构图,大概分为两部分,左边是根键和子键,右边是各种键项的参数。详细信息建议参阅百度百科。       注册表编程其实就是对6个API函数进行操作,但是由于注册表功能太多,学习起来还是挺费劲的。下面只对这些函数进行极为简单的介绍,因为

shannon_的专栏 768

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Windows XP 64位注册表删除问题

32位程序在Windows XP 64位系统中使用RegDeleteKeyW存在问题。 如下代码能再Win7中正常删除键值HKEY_LOCAL_MACHINE\SOFTWARE\Test , 但是在XP 64位系统中无法工作。 HKEY hkey = NULL; if (::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE", 0, KEY_QUER

perry_xiao的专栏 3135

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VS2017 使用RegOpenKeyEx()函数return 5 解决方案

1.首先,先检查一下,自己的 VS2017 是否是使用管理员权限登陆!!! 如果不是,使用管理员权限登陆:(win10 为例:) 右击VS2017 ——> 更多 ——> 以管理员身份运行; 2:如果是以管理员身份运行,请去尝试修改注册表权限;  具体方法:(这是我复制的)   1、在运行对话框中输入:regedit,点击确定或按回车键(Enter),打开注册表

x_xx_xxx_xxxx的博客 3373

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

RegCreateKey返回5问题解决和注册表问题

我的情况VS2019,64Win10专业版 前两天使用这个RegCreateKey函数, 不能成功,网上说因为RegCreateKey是WIN16 API过时了,要使用RegCreateEx,我去试了试简直是无稽之谈也会返回5。 还有人说,是因为权限不够,我顺着这条思路探索两个方法: 第一种就是直接以管理身份运行VS,点击运行的时候就不会返回5,不过你发给用户用用户也是用不了的,因为用户运行的时候会没有权限。 第二种就是你在项目属性,配置属性,连接器,清单文件,把UAC执行级别换成管理员或者另一个最高,此时

adfasgsgg的博客 4448

installshield学习笔记

installshield学习笔记 看预定义常量的值:SprintfBox(INFORMATION,"","%d",变量值); 自定义常量:#define MAXCOUNT 1000;#define COMPAN_NAME "Example_Company"; 所有用prototype声明过的函数都必须在函数块中定义, 在预处理语句后面不带“;”例如:#define,#include等等; 关键字program,endprogram和end和begin ...

Ven519的博客 583

RegDeleteKey函数删除子项并包含其所有值 及递归删除子项例子。请注意,key名称不区分大小写。

RegDeleteKey The RegDeleteKey function deletes a subkey and includes all its values. Note that key names are not case sensitive. RegDeleteKey函数删除子项并包含其所有值。请注意,key名称不区分大小写。 64-bit Windows:  On W

thanklife的专栏 5347

VC操作注册表函数(一)

VC操作注册表函数 收藏 张明奇(卡哥)      最近在做一个项目的时候使用到一些操作注册表的函数,现将这些函数记录以下,以方便以后使用     1. 打开注册表键    LONG RegOpenKeyEx(   HKEY hKey,                            // handle to open key主键   LPCTSTR lpSubKey,

L_Andy的专栏 5229

C++ 注册表编程

转自http://wenku.baidu.com/view/f369e14acf84b9d528ea7a77.html 1.基础知识 注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分: (1)根键。分为5个,分别为HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,HKEY_LOC...

weixin_30877227的博客 301
上一篇: 用VC++开发Windows服务
下一篇: UNIX系统FreeBSD常用命令
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值