我已经使用RegSetValueExA在注册表项中设置了键和值,并创建了它。但是现在我想从注册表项中删除该键和值,为此我使用了RegDeleteKey,但它给出的错误2是“系统找不到指定的文件”,你能告诉我如何解决这个问题吗?
发布于 2009-09-25 05:27:38
你能显示任何代码吗?它不能帮助这里的任何人缩小你的问题。
不过,如果我猜测一下,您在RegOpenKeyEx或RegDeleteKey中指定LPCTSTR lpSubKey的方式可能有问题。
示例:
如果您创建了密钥:
HKEY_LOCAL_MACHINE\Software\Test为了删除它,你需要类似这样的东西:
RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software", 0, KEY_ALL_ACCESS, &RegHandle)
RegDeleteKey(RegHandle, test)或
RegOpenKeyEx(HKEY_LOCAL_MACHINE, someNullValue, 0, KEY_ALL_ACCESS, &RegHandle)
RegDeleteKey(RegHandle, L"Software\\test")请确保您再次在MSDN上查看这些函数。
RegDeleteKey RegOpenKeyEx
发布于 2009-09-25 05:13:05
注册表项是否有子项?RegDeleteKey不会执行递归删除。如果您正在为Vista+编写代码,则可以使用RegDeleteTree,否则您将不得不编写递归删除代码,但在MSDN上有示例代码。
您也可以在shlwapi.dll之外使用SHDeleteKey。
发布于 2013-05-10 00:57:57
检查错误2/“找不到文件”的两件事:
如果你创建了一个类似HKCU > Software > CompanyName的文件夹,然后用RegSetValueEx存储了一个类似option = "foo“的值,那么你需要用RegDeleteValue或RegDeleteValueEx删除它。
https://stackoverflow.com/questions/1475523
复制相似问题