c++ 删除注册表项

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:17:47
//一下代码是为了删除Software\\Microsoft\\Windows\\CurrentVersion\\Run下的TimeControl这一项哪里错了吗?总是不行
CString subkey="Software\\Microsoft\\Windows\\CurrentVersion\\Run\\TimeControl";
RegDeleteValue(HKEY_LOCAL_MACHINE,subkey);
呵呵,忘记说了,我在程序的其他地方已经打开了注册表的 ,三楼,我参数也设置成你说的了,可是还是不行啊

对参数理解错误,导致函数运用错误。
要先打开想要删除的key。
RegDeleteValue()函数的第一个参数应该是open的那个key,在你这里应该是HKEY_LOCAL_MACHINE下的Software\Microsoft\Windows\CurrentVersion\Run,第二个参数应该是要删除的word,即TimeControl。

用法有误,应该是下面这样的:
HKEY hKey;
if(RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey)==ERROR_SUCCESS)
{
RegDeleteValue(hKey,"TimeControl");
RegCloseKey(hKey);
}

先打开再删除