jk's notes
  • 使用浏览器打开本地程序

使用浏览器打开本地程序

利用注册表, 写入一个自定义的协议, 然后有浏览器来执行.

注意事项:

  1. js 没有办法主动判断本地是否有该协议. 因此例如百度网盘等这类网站会利用 js 异常来处理判断. 这类办法在 jQuery 源码中也有过, 假定默认支持某种方法, 如果出现异常则表示无该方法.
  2. 首先需要写入注册表, 写入注册表时, 需要注意使用 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>
Last Updated: 12/2/25, 10:56 AM
Contributors: jk