欢迎来到天天文库
浏览记录
ID:35538417
大小:352.88 KB
页数:20页
时间:2019-03-25
《[教材]从网页web上调用本地应用程序(jar、exe)的主流处理方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、对于该篇文章有疑问或者错误的地方,邮件至wzwahl36@qq.com,欢迎交流。在做web应用的时候,我们经常会遇到在web中调用本地应用程序的问题,例如在web中点击一个按钮,然后打开自己写的或者别人的应用程序。上网比较留意的同学应该会发现,想qq客服,淘宝的阿里旺旺客服都会有这样的效果。其中qq的聊天按钮已经开源,你也可以写到自己的网页中,详见http://wp.qq.com/index.html。下面我主要介绍一种现在主流的处理方法,这种方法在网上的其他地方也有,但是都是转来转去,而且写得不详细,对于初学者来说,很难看懂,并仿照着处理。所以这篇文章不算原创,只能说是对网上的文章进行详
2、细说明,便于大家使用和仿照。自己在做《电能计量仿真实训系统》中,需要在B/S系统中调用C/S仿真系统,并传入几个参数,尝试着用js调用activeObject来处理,但是这个涉及到安全性的问题,而且只能在ie下才能实现。备注:这个项目是用Java完成的,包括c/s部分也是用javaswing做的,所以我遇到的问题是在web上调用java打包之后jar应用程序,难度比web调用exe多了一步工作。这个方法主要思路是利用自定义URLProtocol来调用应用程序。浏览器在解析到自定义URLProtocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数。对于我这个项目而
3、言,主要思路是利用这个自定义URLProtocol的方法,打开一个c#的应用程序,在这个程序中再调用系统命令,打开jar应用程序,并传入参数。主要实现步骤如下:1•添加自定义URLProtocol#####################################################################################l・##WindowsRegistryEditorVersion5.002.##[HKEY_CLASSES_ROOTSimu]3・##"URLProtocol,,=,,x:\simu\Simulink.exe"4.##@二〃S
4、imuPtotocol"4.##[HKEY_CLASSES_R00TSimuDefaultIcon]5.##@=,zx:\simu\Simulink.exe,1〃6.##[HKEY_CLASSES_ROOTSimushell]7.##[HKEY_CLASSES_R00TSimushcllopcn]8.##[HKEY_CLASSES_ROOTSimushellopencommand]9.##@二〃〃x:\simu\Simulink・exe〃#############################################################
5、########################在#内的为自定义URLProtocol的注册表信息,我对每一行说明一下:第一行是注册表工具的版本信息,可以自己改一改,或者自己导入任意一个注册信息,把这一行复制过来就行了;第二行中的Simu就是在HKEY_CLASSES_ROOT下面添加一个Simu树,其中Simu的名称就对应着自定义URLProtocol的名称,在web中调用的时候需要这个名称;第三行中的〃x:\simu\Simulink.exe〃是指定应用程序的路径,注意只能是exe的程序;第四行是协议的名称,可以是任意字符串,后面不会用到;第五行表示在Sirw中再加一个分支,照抄,不
6、用管;第六行中的x:\simu\Simulink.exe也是对应的程序路径,后面的1照抄;第七行同第五行;第八行同第五行;第九行同第五行;第十行也是将路径换成自己的程序路径即可,其中%1表示到参数,参数可以在你的程序simulink.exe中解析得到。分析毕。将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。如下图:文件(F)«$(E)S®(V)加決•••••••REG.SZ"x:simuSimulink.exe**%1*>Shell.Explorer.2Shell.FolderVlew
7、Shell.FolderView.lShell.HWEventHandlerShellExecuteShell.HWEventHandlerShellExecutc.lShell.UlHelper>-jShell.UIHelper.lShellNameSpace.ShellNameSpaceShellNamcSpace.ShellNameSpace.l>打ShlExt.QQPIayerShlExtShlExt
此文档下载收益归作者所有