删除特定注册表项下的所有值

时间:2010-06-07 17:20:03

标签: c registry

是否有API会删除特定注册表项下的所有值?

例如,我有以下密钥

HKEY_CURRENT_USER \ SOFTWARE \ MyCompany的\程序\的myconfig

在它之下我有

(默认)
SomeVal
SomeOtherVal
YetSomeOtherVat
...

那里可能有10个,20个,100个值。这取决于您在应用程序上设置的内容。 有没有办法在C中删除它们而不必逐个迭代并删除它们?

谢谢,代码表示赞赏。

2 个答案:

答案 0 :(得分:1)

Shlwapi.lib的SHDeleteKey功能可以满足您的需求。

如果您只在Vista和更高版本的操作系统上使用此功能,则可以使用RegDeleteTree

答案 1 :(得分:0)

应该这样做:

if (RegDeleteTree("HKEY_CURRENT_USER", "Software\MyCompany\Program\Myconfig") == ERROR_SUCCESS)
{
    . . .
}

此函数删除指定的注册表项及其所有子项。但是,Windows 7使用此功能删除Windows XP计算机上的密钥存在问题。有关详细信息,请参阅MSDN。

相关问题