通过web页面上的链接调用本地软件
来源:互联网 发布:青稞的网络意思 编辑:程序博客网 时间:2024/06/07 05:53
用户提出了一个需求,要把本地安装的C/S结构的软件调出来。
注意,不是点击它的快捷方式或者exe文件,而是点击网页上的一个按钮或者链接,就要把软件客户端调出来。在网上找过相关的资料,有两个比较常用的解决方案。
1,采用js代码来调,代码如下:
- function Run(strPath) {
- var objShell = new ActiveXObject("wscript.shell");
- objShell.Run(strPath);
- objShell = null;
- }
- <a onFocus='this.blur()' title=" QQ " href=# onclick=javascript:Run('file:///D:/Program%20Files/QQ/QQ.exe','File')>调用QQ程序</a>
2,采用java程序,写成一个面板形式,但难度有点大,用户体验也不会好。其基本代码如下:
- public static void main(String[] args) throws Exception {
- Process p = Runtime.getRuntime().exec(
- "\"c:/program files/<a href="http://dev.21tx.com/os/windows/" target="_blank">Windows</a>/notepad.exe\"");
- p.waitFor();
- }
- }
最终,还是依靠龙图软件公司的一个控件达到了目的,其步骤如下:
1,安装控件。
2,加上<object>标签,代码如下:
- <OBJECT
- classid="clsid:A3E8EEE9-E85E-472A-AEB3-EB182A605C62"
- codebase="/${res}/ocx/AppCallerXControl.ocx#version=1,0,0,0"
- width="0"
- height="0"
- visible="0"
- id="AppCaller"
- >
- </OBJECT>
/${res}/ocx/AppCallerXControl.ocx表示控件的路径,id表示控件的对象,可以调用控件类中的方法。
- <script LANGUAGE="javascript">
- function clientInvoke(name,code){
- AppCaller.callApp(name,code);
- }
- </script>
3,并在浏览器上方出现
时,加载activeX。
点击按钮或者链接时,出现选择exe程序的选择框:
找到该exe程序或者快捷方式(当然,其他的也是可以的,比如是一个静态的html页面,bat程序,txt程序都可以,会执行其默认的打开方式)。
注意:该链接一旦与一个软件(或其他)建立关系之后,以后再点击该链接将不需要重新选择,会直接打开,因为在注册表里该链接与该软件的路径已经建立了关联,如图所示:
如图,前面的键值都是唯一的,后面的数据表示软件或者文件的路径,这样就已经完成了绑定,如果要更改绑定,就要在注册表中删除该项,或者更改连接中的键值。
控件下载的链接:控件下载
如上所示,在win7环境下有时候不行,打开ie的时候 要使用取得管理员权限就可以了,第一次,注册之后就可以不用这样了
- 通过web页面上的链接调用本地软件
- 通过web页面上的链接调用本地软件
- 网页Web上调用本地应用程序
- 网页Web上调用本地应用程序
- 通过Web页面自动发布客户端软件
- 通过链接读取页面内容并输入到本地
- 在一台机器上通过JMX进行跨JVM的本地调用
- 如何在jsp页面通过点击链接调用Action
- 具有自动查找Web页面上所有链接的网络浏览器
- 具有自动查找Web页面上所有链接的网络浏览器
- 自定义浏览器协议,实现web页面调用本地程序
- 从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法
- 从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法
- 从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法
- 从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法
- web端通过javascript调用android方法打开新的页面
- Flash页面链接调用命令的比较
- 网页Web上调用本地应用程序(.exe)
- vs2008 使用Visual Leak Detector检测内存泄漏
- ibatis常用16条SQL语句
- Oracle中循环语句的触发器
- iBATIS与Spring整合
- How to encrypt a string/stream with bouncycastle pgp without starting with a file
- 通过web页面上的链接调用本地软件
- Ubuntu 安装 Qt 开发环境
- js 中的alert title 在 iOS 中如何消失
- 使用CreateProcess运行程序 + 使用命令行对html文件进行打印
- c语言中realloc()函数解析
- ov2656
- Android ListView分类/分组效果 - 第二种实现方式
- android 休眠唤醒
- MFC的CFile