网页调用本地应用程序
来源:互联网 发布:小米手环怎么清除数据 编辑:程序博客网 时间:2024/05/02 01:45
最近项目遇到一个需求,需要通过网页调用本地应用程序。
找到2个方法,记录一下。
第一个方法,使用WScript.Shell
WScript.Shell对象的Run方法可以直接运行文件(包括协议文件),会启动相关联的程序打开该文件(没有关联则出错)。
比如:objShell.run("D:\\aa.docx");
Run方法可以直接运行位于path环境变量目录中的程序,还能运行在注册表App Paths中设置的程序“别名”.
比如:objShell.run("notepad.exe");
第二个方法,利用URL Protocol
利用自定义URL Protocol来调用应用程序。
(参考百度文库:http://wenku.baidu.com/view/df42b5e1856a561252d36f68.html)
浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数。
我写个一个例子,给notepad++定义一个URL Protocol(Webshell),然后调用它
1)自动进行reg注册表注册
此处参考百度文库中的说明,利用记事本直接构造一个reg文件,实现上述自动注册的功能:
################################添加自定义URL Protocol##################################
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Webshell]
"URL Protocol"="D:\\Notepad++\\notepad++.exe"
@="WebshellProtocol"
[HKEY_CLASSES_ROOT\Webshell\DefaultIcon]
@=" d:\\Notepad++\\notepad++.exe,1"
[HKEY_CLASSES_ROOT\Webshell\shell]
[HKEY_CLASSES_ROOT\Webshell\shell\open]
[HKEY_CLASSES_ROOT\Webshell\shell\open\command]
@="d:\\Notepad++\\notepad++.exe \"%1\""
#####################################################################################
在#内的为自定义URL Protocol的注册表信息,对每一行说明一下:
第一行是注册表工具的版本信息,可以自己改一改,或者自己导入任意一个注册信息,把这一行复制过来就行了;
第二行中的Webshell就是在HKEY_CLASSES_ROOT下面添加一个Webshell树,其中Webshell的名称就对应着自定义URL Protocol的名称,在web中调用的时候需要这个名称;
第三行中的"D:\\Notepad++\\notepad++.exe"是指定应用程序的路径,注意只能是exe的程序;
第四行是协议的名称,可以是任意字符串,后面不会用到;
第五行表示在Webshell中再加一个分支,照抄,不用管;
第六行中的d:\\Notepad++\\notepad++.exe也是对应的程序路径,后面的1照抄;
第七行同第四行
第八行同第四行;
第九行同第四行;
第十行也是将路径换成自己的程序路径即可,其中%1表示到参数,参数可以在你的程序notepad++.exe中解析得到。
将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。如下图:
2)构造网页测试代码
然后构造一个最简单的测试页面进行调用测试,测试页面代码仅为一行,如下:
<html>
<a href="Webshell:hello">Wheshell</a>
</html>
找到2个方法,记录一下。
第一个方法,使用WScript.Shell
<html><head> <title>Test Page</title><script type="text/javascript" language="jscript">function Run(strPath){var objShell = new ActiveXObject("wscript.shell");objShell.run("notepad.exe") ; //objShell.run("notepad d:/aa.docx"); // objShell.run("D:\\aa.docx"); objShell = null;}</script></head><body> <BUTTON class=button onclick="Run()" style="right:0; bottom:0;">确定</BUTTON></body></html>
WScript.Shell对象的Run方法可以直接运行文件(包括协议文件),会启动相关联的程序打开该文件(没有关联则出错)。
比如:objShell.run("D:\\aa.docx");
Run方法可以直接运行位于path环境变量目录中的程序,还能运行在注册表App Paths中设置的程序“别名”.
比如:objShell.run("notepad.exe");
第二个方法,利用URL Protocol
利用自定义URL Protocol来调用应用程序。
(参考百度文库:http://wenku.baidu.com/view/df42b5e1856a561252d36f68.html)
浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数。
我写个一个例子,给notepad++定义一个URL Protocol(Webshell),然后调用它
1)自动进行reg注册表注册
此处参考百度文库中的说明,利用记事本直接构造一个reg文件,实现上述自动注册的功能:
################################添加自定义URL Protocol##################################
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Webshell]
"URL Protocol"="D:\\Notepad++\\notepad++.exe"
@="WebshellProtocol"
[HKEY_CLASSES_ROOT\Webshell\DefaultIcon]
@=" d:\\Notepad++\\notepad++.exe,1"
[HKEY_CLASSES_ROOT\Webshell\shell]
[HKEY_CLASSES_ROOT\Webshell\shell\open]
[HKEY_CLASSES_ROOT\Webshell\shell\open\command]
@="d:\\Notepad++\\notepad++.exe \"%1\""
#####################################################################################
在#内的为自定义URL Protocol的注册表信息,对每一行说明一下:
第一行是注册表工具的版本信息,可以自己改一改,或者自己导入任意一个注册信息,把这一行复制过来就行了;
第二行中的Webshell就是在HKEY_CLASSES_ROOT下面添加一个Webshell树,其中Webshell的名称就对应着自定义URL Protocol的名称,在web中调用的时候需要这个名称;
第三行中的"D:\\Notepad++\\notepad++.exe"是指定应用程序的路径,注意只能是exe的程序;
第四行是协议的名称,可以是任意字符串,后面不会用到;
第五行表示在Webshell中再加一个分支,照抄,不用管;
第六行中的d:\\Notepad++\\notepad++.exe也是对应的程序路径,后面的1照抄;
第七行同第四行
第八行同第四行;
第九行同第四行;
第十行也是将路径换成自己的程序路径即可,其中%1表示到参数,参数可以在你的程序notepad++.exe中解析得到。
将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。如下图:
2)构造网页测试代码
然后构造一个最简单的测试页面进行调用测试,测试页面代码仅为一行,如下:
<html>
<a href="Webshell:hello">Wheshell</a>
</html>
实际运行的演示效果如下所示:
0 0
- 网页调用本地应用程序
- 在网页中调用本地的应用程序
- 在网页中调用本地的应用程序!!!!
- 在网页中调用本地的应用程序!!!!
- 在网页中调用本地的应用程序!!!!
- 在网页中调用本地的应用程序
- 在网页中调用本地的应用程序
- URL Protocol实现网页调用本地应用程序
- 网页Web上调用本地应用程序
- 网页Web上调用本地应用程序
- 利用URL Protocol实现网页调用本地应用程序
- 利用URL Protocol实现网页调用本地应用程序
- 利用URL Protocol实现网页调用本地应用程序
- 网页Web上调用本地应用程序(.exe)
- 利用URL Protocol实现网页调用本地应用程序
- 网页打开本地应用程序
- Flex 调用本地应用程序
- java 调用本地应用程序
- Linux后台开发应该具备技能
- 7.3.Zeng_Cache(4) --- 后端
- 整洁代码----设计好错误处理
- 详解C++右值引用
- 利用mybatis 执行mysql是遇到的bug
- 网页调用本地应用程序
- 全选/取消复选按钮操作
- MySQL 的 C API预处理语句
- 求正数数组的最小不可组成和
- Mysql数据的迁移
- 获得指定安装包的VersionName
- IOS 下拉方法 上推缩小
- libswscale图像格式转换与放大缩小
- Linux下Tomcat的安装配置