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\""

双击后查看注册表:

chrome内核浏览器调用本地exe客户端

编写测试页面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:”。