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

1.添加自定义URL Protocol

#####################################################################################

1.##Windows Registry Editor Version 5.00

2.##[HKEY_CLASSES_ROOT\Simu]

3.##"URL Protocol"="x:\\simu\\Simulink.exe"

4.##@="SimuProtocol"

5.##[HKEY_CLASSES_ROOT\Simu\DefaultIcon]

6.##@="x:\\simu\\Simulink.exe,1"

7.##[HKEY_CLASSES_ROOT\Simu\shell]

8.##[HKEY_CLASSES_ROOT\Simu\shell\open]

9.##[HKEY_CLASSES_ROOT\Simu\shell\open\command]

10.##@="\"x:\\simu\\Simulink.exe\" \"%1\""

#####################################################################################

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

将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。如下图:

如果本机装有QQ,也可以从QQ的注册表里得实例。

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

调用协议很简单,就是一个链接即可,如下所示:

<a href="Simu://hello">SIMU</a>

需要指出的是:在标题1中的第10行注册表中代码中的%1表示传入参数,就是对应这此处的Simu://hello,解析之后就可以得到参数hello了。

效果如下图所示:

(1)web页面


(2)点击之后


(3)点击启动程序

[转]从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法的更多相关文章

  1. js网页中调用本地应用程序

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Con ...

  2. PC网页js调用本地应用程序

    最近要现实一个在PC网页中实现点击按钮调用本地应用程序的功能 其实实现原理也非常简单, 首先注册一个本地注册表文件,指向本地应用程序路径 其次在网页中用js指向这个注册表文件,就可以实现网页调用本地应 ...

  3. ubuntu下浏览器调用本地应用程序

    ubunut下浏览器调用本地应用程序需要desktop文件和scheme协议的支持,和windows 的url protocol类似,只是注册协议的方式不一样. 首先是desktop文件,里面需要加入 ...

  4. win764位系统上让32位程序能申请到4GB内存方法

    win764位系统上让32位程序能申请到4GB内存方法. 2016年09月18日 18:36:26 阅读数:1550 最近测试一个32位程序总是在1.2G左右内存时崩溃,怀疑是内存申请失败,本身32位 ...

  5. 【Web前端】---js调用本地应用程序

    最近进入了一个项目组,向大牛们一起学习如何搞开发,可谓是边开发边学习.就在前两天,我们的项目被领导们验收了一次,顺便给我们提了点新的需求,要求我们能够使用外在设备拍照上传.君要臣死,臣不能不死.更何况 ...

  6. 【问题记录】— web页面调用本地程序

    起因: 最近由于项目需要在web页面中调用本地部署的exe程序:进而对该功能实现做了对应了解:以及存在的问题进行记录. 要实现该功能就不得不说浏览器自定义协议:解决办法:那么它是什么呢? 浏览器自定义 ...

  7. Js如何调用本地应用程序

    一般情况下,浏览器中是无法直接和本机的其他的程序进行交互的,在IE中,我们可以通过ActiveX对象的方式进行.但是这个方式只适用于IE浏览器,另一种比较通用的方式便是URL协议的方式,我们将某种UR ...

  8. SAE上使用本地sql文件建表时出错解决方法

    在SAE上部署网站时需要上传本地的数据库结构,我也导出了本地数据库为sql文件,但是上传到SAE上时遇到了如下错误: MySQL 返回: #1044 - Access denied for user ...

  9. 在Web上调用Ocx控件

    原文:http://blog.csdn.net/goodadult2012/article/details/6343369 在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中 ...

随机推荐

  1. DSP using MATLAB 示例Example3.21

    代码: % Discrete-time Signal x1(n) % Ts = 0.0002; n = -25:1:25; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*a ...

  2. SU Demos-07NMO

    本例还不完善,不足之处,欢迎批评指正 先看readme 第1个脚本,显示速度模型 脚本#2,生成数据 脚本#3,显示合成数据 脚本#4,进行速度分析 脚本#5,动校叠加

  3. 02_Java语言基础部分【总结】

    1. 数据的输入/输出 标准输入输出流 字符输入: char c = (char)System.in.read(); 字符串输入: BufferedReader buf = new BufferedR ...

  4. eclipse安装genymotion的奇葩问题

    安装方法: 1:启动Eclipse 2:打开"Help/Install new software"菜单 在新开启的窗口中点击"add"按钮(位于窗口右上方) 在 ...

  5. 【面经】【转】C++类型转换

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:type b = (type) a. C++风格的类型转换提供了4种类型转换操作符来应对不同场景的应用. const_cas ...

  6. 【转】如果成为一个牛比的BI售前

    转自:天善智能 没有最厉害,只有更厉害啊.也没有一定哪儿厉害,会因人定制各有不同啊.打个比方,如果你长得很庄重,年长,光头或布满银丝,然后以专业的态度,以饱满的激情去跟你客户宣讲,杀伤力巨大.所以,卖 ...

  7. iOS学习04C语言数组

    1.一维数组 数组:具有相同类型的成员组成的一组数据 1> 定义 元素:数组中存放的数据成为数组的元素     数组是构造类型,用{...}来给构造类型赋初始值,类型修饰符用来表示元素的类型 类 ...

  8. 【转】SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

    转自:http://www.coderli.com/junit-spring-test-applicationcontext JUnit单元测试用例中使用Spring框架,直接方式如下. @RunWi ...

  9. ubuntu 安装Firefox 29.0

    下载Firefox 29.0 % cd ~/Downloads % sudo cp firefox-29.0.tar.bz2 /opt % cd /opt % sudo tar -xvjf firef ...

  10. [BZOJ2790][Poi2012]Distance

    2790: [Poi2012]Distance Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 225  Solved: 115[Submit][Sta ...