收录日期:2018/09/20 05:27:06 时间:2016/05/18 03:13:39 标签:基础类
我定义了如下两个函数
BOOL CRegistry::Open(LPCTSTR lpSubKey)
{
ASSERT(m_hKey);
ASSERT(lpSubKey);
    
HKEY hKey;
long lReturn=RegOpenKeyEx(m_hKey,lpSubKey,0L,KEY_ALL_ACCESS,&hKey);
    
if(lReturn==ERROR_SUCCESS)
{
        m_hKey=hKey;
return TRUE;
}
return FALSE;

}

BOOL CRegistry::DeleteKey(HKEY hKey, LPCTSTR lpSubKey)
{
ASSERT(hKey);
ASSERT(lpSubKey);

long lReturn=RegDeleteValue(hKey,lpSubKey);

if(lReturn==ERROR_SUCCESS)
return TRUE;
return FALSE;

}


之后我打算删除注册表的一个子键,我用了如下代码:
CRegistry reg;
BOOL bReturn;
bReturn=reg.Open ("Software\\eSX\0");
bReturn=reg.DeleteKey(HKEY_LOCAL_MACHINE,"Software\\eSX\\name\0");

即我要删除HKEY_LOCAL_MACHINE\Software\eSX下的name子键。
但是,我无法删除,每次都是False。

我把reg.DeleteKey(HKEY_LOCAL_MACHINE,"Software\\eSX\\name\0");改为
reg.DeleteKey(HKEY_LOCAL_MACHINE,"name");
一样不行~,不知道我错在哪里了?谢谢
UP
下载一个注册表类去实现,轻松OK