hur.cn - 华软网

 热门搜索

VISTA/WIN7系统下读写注册表的问题

  作者:未知    来源:网络    更新时间:2010/1/14
我在安装程序中,将相关数据写入了注册表,
然后运行软件时,会对注册表内容进行修改(可是VISTA/WIN7系统下比较特殊,它会自己先备份映射),所以我们修改的内容
其实是映射文件的内容。

然后卸载时,只会卸掉注册表中的相关数据,映射出来的还存在

我们再重新安装,软件读取的就是映射文件的内容,不是注册表的内容,这个该怎么处理
---华软 网友回答---
VISTA/WIN7 没搞过,
映射出来的,卸载时不能写脚本清掉吗
---华软网友回复---
问题是映射出来的临时文件目录 每台机子是不一样的。。怎么卸载 只能卸载本来的 不能卸载映射出来的
---华软网友回复---
怎么操作注册表的,是指注册表重定向了? 直接Native操作数据库..
---华软网友回复---
怎么操作注册表的,是指注册表重定向了? 直接Native操作注册表..
---华软网友回复---
HKEY hKey; //HKEY C++中的注册表键的结构句柄
CString strSoftwareKey = _T("SOFTWARE\\SIGENKEJI");
long res = RegOpenKeyEx(HKEY_LOCAL_MACHINE,strSoftwareKey,0,KEY_ALL_ACCESS,&hKey);
if(res!=ERROR_SUCCESS)
{
AfxMessageBox(_T("注册表被损坏,请重新安装软件!"));
return FALSE;
}
else
{
TCHAR chExpire[2];
memset(chExpire,0,2*sizeof(TCHAR));
DWORD t = 256;
res=RegQueryValueEx(hKey, _T("limit"), NULL,
&t, 
(LPBYTE)&chExpire, 
&t);
---华软网友回复---
WIN7/VISTA系统下  不会让你直接对注册表进行操作,是让你对映射出来的注册表进行操作的
---华软网友回复---
问题终于解决了
long res = RegOpenKeyEx(HKEY_LOCAL_MACHINE,strSoftwareKey,0,KEY_ALL_ACCESS,&hKey); 
如果是创建在HKEY_LOCAL_MACHINE下 
WIN7系统会自动备份一份到HKEY_CURRENT_USER下,之后强制将我们的操作转到HKEY_CURRENT_USER下去,
所以只要创建再HKEY_CURRENT_USER下就没问题了 散分了
---华软网友回复---
还是不太懂1
---华软网友回复---
LPCWSTR regname=(LPCWSTR)"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
HKEY hkres=NULL;
int ret=RegOpenKeyEx(HKEY_CURRENT_USER,regname,0,KEY_ALL_ACCESS,&hkres);
上面的代码在win7下面总是出错,错误代码2,请问知道怎么解决吗?我的win7是32位的
---华软网友回复---
引用 9 楼 ddweidong 的回复:
LPCWSTR regname=(LPCWSTR)"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
HKEY hkres=NULL;
int ret=RegOpenKeyEx(HKEY_CURRENT_USER,regname,0,KEY_ALL_ACCESS,&hkres);
上面的代码在win7下……

修改LPCWSTR regname=(LPCWSTR)("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings");
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。