添加自定义URL Protocol实现从Web上调用本地exe应用程序

这个方法主要思路是利用自定义URL Protocol来调用应用程序。浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数。对于我这个项目而言,主要思路是利用这个自定义URL Protocol的方法,打开一个c#的应用程序,在这个程序中再调用系统命令,打开jar应用程序,并传入参数。主要实现步骤如下:

1.添加自定义URL Protocol

Windows Registry Editor Version 5.00  
  
[HKEY_CLASSES_ROOT\TscPrint]  
  
"URL Protocol"="D:\\test\\tsc_printer.exe"  
  
@="TscPrintProtocol"  
  
[HKEY_CLASSES_ROOT\TscPrint\DefaultIcon]  
  
@="D:\\test\\tsc_printer.exe,1"  
  
[HKEY_CLASSES_ROOT\TscPrint\shell]  
  
[HKEY_CLASSES_ROOT\TscPrint\shell\open]  
  
[HKEY_CLASSES_ROOT\TscPrint\shell\open\command]  
  
@="\"D:\\test\\tsc_printer.exe\" \"%1\""  

        在#内的为自定义URL Protocol的注册表信息,我对每一行说明一下:第一行是注册表工具的版本信息,可以自己改一改,或者自己导入任意一个注册信息,把这一行复制过来就行了;第二行中的TscPrint就是在HKEY_CLASSES_ROOT下面添加一个TscPrint树,其中TscPrint的名称就对应着自定义URL Protocol的名称,在web中调用的时候需要这个名称;第三行中的"URL Protocol"="D:\\test\\tsc_printer.exe" 是指定应用程序的路径,注意只能是exe的程序;第四行是协议的名称,可以是任意字符串,后面不会用到;第五行表示在TscPrint中再加一个分支,照抄,不用管;第六行中的D:\\test\\tsc_printer.exe也是对应的程序路径,后面的1照抄;第七行同第五行;第八行同第五行;第九行同第五行;第十行也是将路径换成自己的程序路径即可,其中%1表示可以在链接中传参数,参数可以在你的程序tsc_printer.exe中解析得到。分析毕。

       将以上内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。成功之后可在注册表对应位置进行查询,这里不再赘述。

2.在web中调用自定义协议启动程序

<a href="TscPrint://test?id=100&name=WolfShadow&sex=1&website=www.wolfshadow.cn">TscPrint</a>

 需要指出的是:在标题1中的第10行注册表中代码中的%1表示传入参数,就是对应这此处的TscPrint://test?id=100&name=WolfShadow&sex=1&website=www.wolfshadow.cn,解析之后就可以得到参数想要传入的参数了。

如有不足之处,欢迎批评指正。

指正邮箱:[email protected]

文章参考:https://blog.csdn.net/fkepgydhbyuan/article/details/52918163

猜你喜欢

转载自blog.csdn.net/u010188178/article/details/82454965