C++ 将条目添加到';后无法卸载我的工具;卸载&x27;注册表项
我正在开发一个简单的win32工具。我希望用户能够轻松卸载该工具,因此我添加了一个子项:C++ 将条目添加到';后无法卸载我的工具;卸载&x27;注册表项,c++,windows,registry,uninstallation,C++,Windows,Registry,Uninstallation,我正在开发一个简单的win32工具。我希望用户能够轻松卸载该工具,因此我添加了一个子项: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall 调用MyTool,并添加了所有必要的键,例如:DisplayName,UninstallString,DisplayVersion,DisplayIcon 到目前为止还不错。我可以看到,在我的工具的安装过程中,添加了新的子键,一切都如预期的那样 问题 当我来卸载我的
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
调用MyTool
,并添加了所有必要的键,例如:DisplayName
,UninstallString
,DisplayVersion
,DisplayIcon
到目前为止还不错。我可以看到,在我的工具的安装过程中,添加了新的子键,一切都如预期的那样
问题
当我来卸载我的工具并按卸载时,会出现以下错误:
You do not have sufficient access to uninstall MyTool. Please contact your system administrator
笔记
我的进程是32位的。然而,Wow6432Node
相关主题并不重要,因为我在32位和64位系统中都遇到过这个问题
问题:
我添加注册表子项的方式有问题吗?这是一种非常愚蠢的浪费时间的错误 信不信由你,问题在于键的值中使用的路径分隔符:
UninstallString
生成误差
工作
不管这是否是我作为开发人员的过错,为什么windows会在这种情况下出错?可能是因为您使用了寄存器?您知道有其他方法卸载该工具吗?拥有它有什么目的吗?为什么不能让用户直接进入控制面板并从那里卸载?@Auriga。我不明白你的意思。。为了让用户在控制面板中有一个卸载条目,作为工具开发人员,我需要在注册表中添加一个正确的条目。这就是我所做的。我不知道如何在不知道如何添加注册表子项的情况下诊断您添加注册表子项的方式是否有问题…@Auriga:这就是如何向控制面板区域添加项的方法。就像安装应用程序一样,卸载该工具需要管理员权限。如果您有理由相信卸载您的工具不需要管理员权限,请解释原因。否则,观察到的行为就是预期的行为。
"C:/Program Files (x86)/MyTool/my_tool.exe" /uninstall"
"C:\Program Files (x86)\MyTool\my_tool.exe" /uninstall