chrome内核浏览器调用本地exe客户端
本方案主要解决chrome浏览器出于安全考虑不能ActiveXObject内置对象调用本地exe的问题,配合windows自定义私有协议的“url protocol handler”方案,解决如下:
编写chrome-call.reg文件,完成后保存编码为unicode编码,双击即可注册到注册表,内容如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\pacs-url]
@="URL:pacs-url Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\pacs-url\DefaultIcon]
@="E:\\ll\\Product\\pacs\\Jpacs\\deploy\\zjpacsclient\\zjrispacs.exe"
[HKEY_CLASSES_ROOT\pacs-url\Shell]
[HKEY_CLASSES_ROOT\pacs-url\Shell\Open]
[HKEY_CLASSES_ROOT\pacs-url\Shell\Open\command]
@="E:\\ll\\Product\\pacs\\Jpacs\\deploy\\zjpacsclient\\zjrispacs.exe \"%1\""
双击后查看注册表:
编写测试页面test.html,注意此页面需要放置到tomcat等页面容器部署后访问,内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<!--<a href="liexplorer://D:\ppt\1.pps" >ssss</a>-->
<a href="pacs-url:M445">M445</a>
<a href="pacs-url:M433">M433</a>
</html>
注意:传入的参数值为:“pacs-url:M445”整个字符串,根据需要进行截取处理,如果你使用“pacs-url://M445”的方式传值调用,接收处可能因为//的原因取到的值为“pacs-url:”。