使用浏览器打开本地程序
利用注册表, 写入一个自定义的协议, 然后有浏览器来执行.
注意事项:
js没有办法主动判断本地是否有该协议. 因此例如百度网盘等这类网站会利用js异常来处理判断. 这类办法在jQuery源码中也有过, 假定默认支持某种方法, 如果出现异常则表示无该方法.- 首先需要写入注册表, 写入注册表时, 需要注意使用
GB312的字符串.
以激活启动本地 AutoCAD 应用程序为例. 定义新协议: newopenprotocol. 参考代码片段如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\newopenprotocol]
@="URL:newopenprotocol Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\newopenprotocol\DefaultIcon]
@="C:\\Program Files\\Autodesk\\AutoCAD 2022\\acad.exe"
[HKEY_CLASSES_ROOT\newopenprotocol\shell]
[HKEY_CLASSES_ROOT\newopenprotocol\shell\open]
[HKEY_CLASSES_ROOT\newopenprotocol\shell\open\command]
@="C:\\Program Files\\Autodesk\\AutoCAD 2022\\acad.exe"
将该代码文本保存为: open.reg 可双击运行. 注意字符集格式.
浏览器启动参考代码:
<a href="newopenprotocol://test">打开程序</a>