0
A
回答
2
唯一的方法是枚举值为RegEnumValue()
,并使用RegDeleteValue()
单独删除它们。
或者如果密钥没有任何子密钥,只需递归删除整个密钥,然后重新创建父密钥。
编辑:这是一个基本的例程来说明如何枚举和删除键中的值(它只有最小的错误检查)。
DWORD dwNumValues, dwValueNameLen;
if (RegQueryInfoKey(hKey, 0, 0, 0, 0, 0, 0,
&dwNumValues, &dwValueNameLen, 0, 0, 0) == ERROR_SUCCESS)
{
TCHAR* tchValName = new TCHAR[dwValueNameLen + 1];
for (int i = dwNumValues - 1; i >= 0; --i)
{
DWORD dwLen = dwValueNameLen + 1;
if (RegEnumValue(hKey, i, tchValName, &dwLen, 0, 0, 0, 0) == ERROR_SUCCESS)
RegDeleteValue(hKey, tchValName);
}
delete[] tchValName;
}
相关问题
- 1. 删除注册表键值
- 2. 删除特定注册表项下的所有值
- 3. 删除注册表值
- 4. 注册表删除值
- 5. 没有@删除所有行注册
- 6. 删除顽固的注册表项
- 7. Powershell:删除包含字符串的所有注册表项
- 8. 如何删除注册表中的值?
- 9. 使用reg删除注册表项删除
- 10. 注册表项删除错误
- 11. 通过cmd删除注册表项
- 12. 问题删除注册表项
- 13. WIX removefiles和Windows删除注册表项
- 14. 获取注册表项删除权限
- 15. Powershell - 删除(默认)注册表项?
- 16. 注册表项:删除错误
- 17. 如何删除注册表项?
- 18. 从注册表中删除DB2INSTDEF值
- 19. 如何删除注册表值?
- 20. 从Windows注册表中删除InProgress注册表项
- 21. 删除所有相册?
- 22. 使用批处理删除注册表项及其子项
- 23. 卸载程序不删除注册表
- 24. 从注册表中删除服务从Windows服务器删除注册表
- 25. 删除值,而不删除重复
- 26. SQL:删除子树表(ID,PARENTID),删除一个项目,他所有的孩子
- 27. 手动删除损坏的注册表项没有显示注册表
- 28. 如何在不删除注册表中的密钥的情况下在卸载时修改注册表项值?
- 29. 注册表问题 - 使用C++删除键/值
- 30. 编辑/删除受保护的注册表项值
非常感谢Jonathan。我是否认为我必须做一个For或者While来加入这两个功能。我对吗? –
我已经添加了一些如何枚举和删除值的示例代码。 –
太棒了!非常感谢! –