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 に答える