0

我在注册表名称my_software中有一个键。

我想从 vc++ 编码中删除它。在此处输入图像描述

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);

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

4

1 回答 1

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;
}
于 2012-08-14T12:24:49.623 回答