为了使程序正常运行,需要在客户端安装一个插件,那么在每次打开时都需要检测一遍 ,如果插件已经安装,则不提示安装,否则提示安装:插件安装后会在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]写入注册信息;开始时,我通过JS提取“navigator.userAgent”中的信息,可以提取到我写入注册表的信息,但在有的客户端却无法提取到,错误原因可能是安装多个浏览器所致;后来,我想着通过直接检测注册表的信息检测,但需要创建新的ActiveXObject对象,如下
var myreadreg=new ActiveXObject("WScript.shell");
但通过这种方法需要用户手动修改"本地Intranet"内“对没有标记为安全的ActiveX控件进行初始化和脚本运行”这一项设置为“启用”,又不太现实实在想不出其它的方法,所以想到了发帖求助,希望论坛的高手能够给予帮助。
var myreadreg=new ActiveXObject("WScript.shell");
但通过这种方法需要用户手动修改"本地Intranet"内“对没有标记为安全的ActiveX控件进行初始化和脚本运行”这一项设置为“启用”,又不太现实实在想不出其它的方法,所以想到了发帖求助,希望论坛的高手能够给予帮助。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body><br />
<script type="text/javascript">
//<![data[
checkInstalled = function(m) {
switch(m){
case 'msn':
try {
new ActiveXObject("MSNMessenger.P4QuickLaunch");
return true;
}
catch (e) {
return false;
}
case 'skype':
try{
new ActiveXObject("Skype.Detection");
return true;
}catch(e){
return false;
}
case 'qq':
try {
new ActiveXObject("TimwpDll.TimwpCheck");
return true;
}
catch (e) {
return false;
}
}
}
//]]-->
</script> <input type="button" value="检测有没有安装MSN" onclick="alert(checkInstalled('msn'))" />
<input type="button" value="检测有没有安装QQ" onclick="alert(checkInstalled('qq'))" />
<input type="button" value="检测有没有安装SKYPE" onclick="alert(checkInstalled('skype'))" />
</body><br />
</html><br /> 就这2种,你都知道。是有安全问题,很多地方也都用的。用户可以自己选择要不要启用控件。