Win7下解决修改注册表 返回ERROR_ACCESS_DENIED 的错误--解决办法 MFC

来源:互联网 发布:回龙观矩阵托管 编辑:程序博客网 时间:2024/05/23 18:20

1.win7 UAC的用户权限问题,在工程属性里面进行修改,使其获得管理员的运行级别。修改如下图所示:

Win7下解决修改注册表 <wbr>返回ERROR_ACCESS_DENIED <wbr>的错误--解决办法

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);
}

0 0