2012-08-14 63 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