Удаление всех значений в определенном разделе реестра - PullRequest
1 голос
/ 07 июня 2010

Существует ли API, который удалит все значения в определенном разделе реестра?

например, у меня есть следующий ключ

HKEY_CURRENT_USER \ Software \ MyCompany \ Program \ MyConfig

под ним у меня

(по умолчанию)
SomeVal
SomeOtherVal
YetSomeOtherVat
...

Там может быть 10, 20, 100 значений. Это зависит от того, что вы установили в приложении. Есть ли способ в C удалить их все без необходимости повторять и удалять их один за другим?

Спасибо, код приветствуется.

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Функция SHDeleteKey из Shlwapi.lib делает то, что вы хотите.

Если это требуется только в Vista и более поздних версиях ОС, вы можете использовать RegDeleteTree

0 голосов
/ 07 июня 2010

Это должно сделать это:

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

Эта функция удаляет указанный раздел реестра и все его подразделы.Однако существует проблема с удалением ключей Windows 7 на компьютере с Windows XP с использованием этого.Подробности смотрите в MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...