1. 背景
项目中常用浏览器有Chrome和IE,对于web端启动本地exe客户端。早期,Chrome和IE都提供了ActiveXObject对象,以它的exec接口,只需传入本地exe客户端所在安装路径为参数便可启动客户端。现今,Chrome摒弃了该方式,IE仍有保留。
2. 案例使用场景
本案例主要实现兼容当前Chrome和IE浏览器,web端启动本地exe客户端的一种实现方案。
3. 案例实现
3.1 原理
在注册表中注入自定义的协议,然后web端通过该协议调用启动客户端。
3.2 批处理生成注册表文件
以下批处理示例文件,实现生成打开记事本notepad.exe所需注册表文件,记事本安装目录为“C:\Windows\system32”,批处理文件命令行内容如下:
OpenClient.bat文件:
1.setlocal enabledelayedexpansion
2.rem 如果注册表文件存在则删除
3.del OpenClient.reg
4.set str1=^\
5.set str2=^\^\
6.for /f "tokens=*" %%i in ("%~dp0") do (
7.set regs=%%i
8.set regs=!regs:%str1%=%str2%!
9.
10.echo Windows Registry Editor Version 5.00>>OpenClient.reg
11.echo [HKEY_CLASSES_ROOT\OpenClient]>>OpenClient.reg
12.e