用网页调用本地应用程序的思路是,先进行注册表注册自定义一个URL Protocol协议,再利用URL Protocol实现网页调用本地应用程序。
1.先写一个注册表文件,将其保存为.reg后缀的注册表执行文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\PWFileVersion]
"URL Protocol"="C:\\Program Files (x86)\\PWFileVersion\\FileVersion.exe"
@="FileVersionProtocol"
[HKEY_CLASSES_ROOT\PWFileVersion\DefaultIcon]
@="C:\\Program Files (x86)\\PWFileVersion\\FileVersion.exe,1"
[HKEY_CLASSES_ROOT\PWFileVersion\shell]
[HKEY_CLASSES_ROOT\PWFileVersion\shell\open]
[HKEY_CLASSES_ROOT\PWFileVersion\shell\open\command]
@="\"C:\\Program Files (x86)\\PWFileVersion\\FileVersion.exe\" \"%1\""
一行行来解释:
(1)表示注册表工具的版本信息;
(2)PWFileVersion表示的时注册表的HKEY_CLASSES_ROOT下新增一个PWFileVersion树(理解为在HKEY_CLASSES_ROOT下新增一个文件夹就可以了)
(3)你在网页中要调用打开的程序绝对路径,记得一定要是exe文件
(4)协议名称,可以是任意字符串,后面不会用到
(5)在PWFileVersion下新增一个分支,不用管
(6)地址和(3)中保持一致,1照抄
(7)(8)(9)和(5)一样,新增分支而已
(10)向要调用的程序内传递参数。前面的地址与(3)保持一致,后面的%1表示参数。敲黑板,这里面的/千万不要有所遗漏!本人在这个坑上蹲了很久- -;
运行reg文件,进行注册表注册。
这时候在浏览器输入:
pwfileversion://即可调用该程序
pwfileversion://argument随便什么字符串,即可将参数传入该程序
参考: