64位XP注册表

Windows xp 64bit sp2

今天,纠结于一个问题,在登陆我们公司做的系统时候,需要检查插件是否存在。

首先让我们来看看这一段的脚本。

function isExistOffice(){
	try{
		var shell = new ActiveXObject("WScript.Shell"); 
		var key = shell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Installer\\Products\\94C761FF8C9CE034ABDEC7BD7E97F367\\ProductName");

		var key = shell.RegRead("HKEY_LOCAL_MACHINE");
		alert(key);
		if(key.indexOf('<%=CTBRIConfig.ATTACH_NAME%>')!=-1){
			return true;
		}
	}catch(e){
		return false;
		
	}
	return false;
}

 这段脚本就是检查控制是否存在,通过调用ActiveXObject来读取注册表。

安装程序安装没有任何问题,在注册表中也可以看到此键值是存在的,进入的时候,总是返回为false,通过反复调试,确认是shell.RegRead,没有读取到注册表中的键值,报错的信息是“invalid root in registry key...”,regedit进入到注册表中,发现键值存在。

突然想到,此activexobject可能读取的不是64位的,通过regedit32进入,查看,果然没有此键值,加入,再测试OK。

 

总结:在windows 64位系统中,往往是存在着32位与64位,如果确认64位没有问题,可能程序读取的是32位的环境的,请检查32位的。

BTW:在linux中也可能会有这个情况,lib、lib64,一个是32位的,一个是64位,pidgin 中的飞信加入,也要注意这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值