Haupt Key in der Registry löschen?
-
Hallo Leute ich möchte ein Hauptkey löschen dieser hat mehrere Subkeys doch mit der Funktion RegDeleteKey() klappts nicht, da muss man jedes Key einzelnd löschen.
-
Solange du nicht Vista benützt wirst du wohl jeden SubKey einzeln löschen müssen.
Schreib dir am besten ne kleine Funktion. Sollte ja wirklich nicht das Problem sein.
Siehe dazu: MSDN
-
Wen Du ATL CRegKey verwendest geht das sehr einfach.
Ansonten kannst Du Dir den Code von dort klauen
inline LONG CRegKey::RecurseDeleteKey(LPCTSTR lpszKey) throw() { CRegKey key; LONG lRes = key.Open(m_hKey, lpszKey, KEY_READ | KEY_WRITE); if (lRes != ERROR_SUCCESS) { if (lRes != ERROR_FILE_NOT_FOUND && lRes != ERROR_PATH_NOT_FOUND) { ATLTRACE(atlTraceCOM, 0, _T("CRegKey::RecurseDeleteKey : Failed to Open Key %s(Error = %d)\n"), lpszKey, lRes); } return lRes; } FILETIME time; DWORD dwSize = 256; TCHAR szBuffer[256]; while (RegEnumKeyEx(key.m_hKey, 0, szBuffer, &dwSize, NULL, NULL, NULL, &time)==ERROR_SUCCESS) { lRes = key.RecurseDeleteKey(szBuffer); if (lRes != ERROR_SUCCESS) return lRes; dwSize = 256; } key.Close(); return DeleteSubKey(lpszKey); }