我试图更改注册表值,结果收到此错误代码(错误代码1:功能不正确。)。
我在ModifyValue
内收到此错误代码RegSetValueEx
。该方法定义如下:
utils.h
有人可以帮助我吗?
我已经在GitHub上传了代码: https://github.com/mariopavlov/C/tree/master/RegistryManipulations
提前谢谢你, 马里奥。
答案 0 :(得分:2)
Windows保护这些注册表值,因为它们的更改可能会影响(损坏)许多应用程序和子系统。代码(正确)尝试通过首先从系统获取密钥来解决此问题,以便您可以在不久之后中断系统。
显然你没有写这个代码并在互联网上的某个地方搜索过它。问题出现在应用程序的第一个API调用中:
path = L"SOFTWARE\\Classes\\Interface\\{00020400-0000-0000-C000-000000000046}\\ProxyStubClsid32\\";
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, path, 0, regsam, &handleToKey))
此操作失败并且您没有打开密钥(因为过多的反斜杠)。您应该检查ERROR_SUCCESS
的操作状态。当应用程序尝试使用带有followign API调用的零句柄时,您会收到更多错误,并且获得1
的API返回代码也会有错误的解释,因为您应该在那里获得6
(错误的句柄)
修复此问题后,您最终会修改该值,但此处的另一个提醒是,它可能会损坏相当多的已安装应用程序的正常运行。