用网页调用本地应用程序的思路是,先进行注册表注册自定义一个URL Protocol协议,再利用URL Protocol实现网页调用本地应用程序。
1.先写一个注册表文件,将其保存为.reg后缀的注册表执行文件:
1 Windows Registry Editor Version 5.00 2 [HKEY_CLASSES_ROOTPWFileVersion] 3 "URL Protocol"="C:\Program Files (x86)\PWFileVersion\FileVersion.exe" 4 @="FileVersionProtocol" 5 [HKEY_CLASSES_ROOTPWFileVersionDefaultIcon] 6 @="C:\Program Files (x86)\PWFileVersion\FileVersion.exe,1" 7 [HKEY_CLASSES_ROOTPWFileVersionshell] 8 [HKEY_CLASSES_ROOTPWFileVersionshellopen] 9 [HKEY_CLASSES_ROOTPWFileVersionshellopencommand] 10 @=""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随便什么字符串,即可将参数传入该程序
下面是测试通过的一个:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTTpLink]
"URL Protocol"="D:\Program Files (x86)\TP-LINK\Surveillance\TP-LINK Surveillance.exe"
@="MyTpLinkProtocol"
[HKEY_CLASSES_ROOTTpLinkDefaultIcon]
@="D:\Program Files\MyApp\MyApp.exe,1"
[HKEY_CLASSES_ROOTTpLinkshell]
[HKEY_CLASSES_ROOTTpLinkshellopen]
[HKEY_CLASSES_ROOTTpLinkshellopencommand]
@=""D:\Program Files (x86)\TP-LINK\Surveillance\TP-LINK Surveillance.exe" "%1""
如果是在网页中,就嵌入到<A>标签里面,如:<A href="TpLink://1"></A>