如何从vc ++编码中删除注册表项

时间:2012-08-14 10:00:18

标签: visual-c++ registry

我的注册表名称为 my_software

我想从vc ++编码中删除它。enter image description here

CRegKey key;
LPCSTR lpszKey =  "SOFTWARE\\my_software";
key.m_hKey = HKEY_LOCAL_MACHINE;
LONG lRes = key.Open(key.m_hKey, lpszKey);
LONG err = key.DeleteSubKey(lpszKey);

当我调试代码时,err的值为0x00000002。 当我在winerror.h文件中看到它意味着ERROR_FILE_NOT_FOUND

1 个答案:

答案 0 :(得分:1)

像这样:

bool DeleteValueKey(HKEY hKeyRoot, std::string Subkey, std::string ValueKey)
{
    HKEY    hKey        = NULL;
    bool    bReturn     = false;

    if (RegOpenKeyEx(hKeyRoot, Subkey.c_str(), 0, KEY_SET_VALUE , &hKey) == ERROR_SUCCESS)
    {                   
        if (RegDeleteKey(hKey, ValueKey.c_str() ) == ERROR_SUCCESS)
        {
            bReturn = true;
        }
    }

    if(hKey != NULL){RegCloseKey(hKey);}

    return bReturn;
}