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

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

"Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost'" 这个错误通常是MySQL服务器中遇到的问题,表明尝试连接到数据库的用户(在这个例子中是 'root' 用户)在本地主机上被拒绝访问。这可能有以下几个原因: 1. **密码错误**:确认你输入的 root 用户密码是否正确。如果最近更改了密码,确保使用新密码。 2. **权限设置**:检查 MySQL 的配置文件(my.cnf 或者 my.ini),确认 root 用户是否允许从 localhost 登录。默认情况下,localhost 访问通常是允许的,但如果配置文件中有所限制,则可能需要调整。 3. **防火墙或安全组设置**:如果你在运行有防火墙或安全组规则的环境中,确保允许 MySQL 服务通过必要的端口(通常是 3306)从 localhost 访问。 4. **临时禁止远程登录**:有时,为了安全原因,管理员可能会临时禁用 root 用户的远程登录,这时需要在 MySQL 的安全配置中解除限制。 5. **账户锁定**:如果账户被锁定(如因连续登录失败),则需要通过 `mysqladmin` 命令解锁。 为了解决这个问题,你可以按照以下步骤尝试: 1. **登录尝试**:首先尝试使用正确的用户名和密码重新连接。 2. **检查配置**:查看 MySQL 的配置文件,确认允许 localhost 的访问。 3. **重启服务**:重启 MySQL 服务,看看是否可以解决问题。 4. **修改配置**:如果需要,编辑配置文件以允许 root 用户从 localhost 登录。 5. **解锁账户**:如有必要,解锁 root 账户。 如果以上步骤都不能解决问题,你可能需要联系数据库管理员或者查阅更详细的错误日志获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值