本文主要是介绍Win7下解决修改注册表 返回ERROR_ACCESS_DENIED 的错误--解决办法 MFC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.win7 UAC的用户权限问题,在工程属性里面进行修改,使其获得管理员的运行级别。修改如下图所示:
2.重启后就能正确运行了,即修改和读取注册表。
写入和读取注册表的代码分别如下:
void CMainFrame::OnRegRead()
{
// TODO: 在此添加命令处理程序代码
HKEY key;
DWORD dw;
//long ret=(long)::RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\hello",0,NULL,REG_OPTION_BACKUP_RESTORE,KEY_ALL_ACCESS,NULL,&key,&dw);
long ret=(long)::RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\hello",&key);
if (ret==ERROR_SUCCESS)
{
//MessageBox("OK");
}
::RegSetValue(key,NULL,REG_SZ,"Hello",strlen("Hello"));
::RegCloseKey(key);
}
void CMainFrame::OnRegWrite()
{
// TODO: 在此添加命令处理程序代码
LONG value;
RegQueryValue(HKEY_LOCAL_MACHINE,"SOFTWARE\\hello",NULL,&value);
char* pBuf=new char[value];
RegQueryValue(HKEY_LOCAL_MACHINE,"SOFTWARE\\hello",pBuf,&value);
MessageBox(pBuf);
}
这篇关于Win7下解决修改注册表 返回ERROR_ACCESS_DENIED 的错误--解决办法 MFC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!