2012-08-14 102 views
0

我有一個註冊表名稱中的密鑰my_software如何從vC++編碼刪除註冊表項

我想從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

像這樣:

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; 
} 
+0

用法:DeleteValueKey(HKEY_LOCAL_MACHINE 「SOFTWARE \ my_software」, 「文件夾」); – pcunite 2012-08-14 12:30:36