需求:根据需求,在打开商城的需要提供打开客户端功能,比如点击商城的购买,需要提示客户安装客户端程序,如果已经安装,则直接打开客户端,类似于QQ
目前有两种方式来实现该功能
1 通过JS 调用WScript.shell,检测注册表是否已经安装客户端,如果安装在通过Run打开,并且可以传递参数到客户端程序
打开客户端示例:
function openexe( ) {
try {
debugger;
var wsh = new ActiveXObject("WScript.shell");
var s1 = '123|';
var s2 = '456|';
var c = "file:///C:/Program%20Files%20(x86)/test//StudyActSystem.exe ";//路径最后需要空格
wsh.Run(c + s1 + s2); //运行程序
}
catch (e) {
alert(e.message + "\n 可能原因如下:\n 1、请检测安装路径是否正确 \n 2、Internet选项->安全->自定义级别->对没有标记为安全的ActiveX控件进行初始化和脚本运行->启用 3、请确认是否已经安装客户端");
}
}
1.1 该方法的缺点:需要降低IE安全性,对客户对IE的熟悉度有要求,而且只能在IE上实现,其他浏览器不支持
2 通过注册表协议,打开客户端
第一步:注册协议到客户端注册表中, 下面是注册内容
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\test]
"URL Protocol"="C:\\Program Files (x86)\\test\\StudyActSystem.exe"
@="testProtocol"
[HKEY_CLASSES_ROOT\test\DefaultIcon]
@="C:\\Program Files (x86)\\test\\StudyActSystem.exe,1"
[HKEY_CLASSES_ROOT\test\shell]
[HKEY_CLASSES_ROOT\test\shell\open]
[HKEY_CLASSES_ROOT\test\shell\open\command]
@="\"C:\\Program Files (x86)\\test\\StudyActSystem.exe\" \"%1\""
把这段内容保存成.reg格式的文件,然后双击注册到注册表;也可以通过打包成.reg 文件,在程序安装的时候注册到注册表
第二步:制作自定义Activex控件(该内容是网上收集的资料,仅做学习用)
利用VS2010作自定义activex控件