通过web页面上的链接调用本地软件


用户提出了一个需求,要把本地安装的C/S结构的软件调出来。

注意,不是点击它的快捷方式或者exe文件,而是点击网页上的一个按钮或者链接,就要把软件客户端调出来。在网上找过相关的资料,有两个比较常用的解决方案。

1,采用js代码来调,代码如下:

[javascript] view plain copy
  1. function Run(strPath) {  
  2.   var objShell = new ActiveXObject("wscript.shell");  
  3.   objShell.Run(strPath);  
  4.   objShell = null;  
  5. }  
  6.   
  7. <a onFocus='this.blur()' title=" QQ " href=# οnclick=javascript:Run('file:///D:/Program%20Files/QQ/QQ.exe','File')>调用QQ程序</a>  
通过这样的方式,利用的是ActiveX的脚本程序,控制程序调用。然而这里有个安全性的问题,需要调整浏览器的安全级别。另外需要限制本地软件按的安装路径,这就给客户带来极大的麻烦,如果客户软件不安装在 D:/Program%20Files/QQ路径下,就出现找不到路径的错误,缺乏灵活性,不可取。

2,采用java程序,写成一个面板形式,但难度有点大,用户体验也不会好。其基本代码如下:

  1. public  static  void  main(String[]  args)  throws  Exception  {    
  2.          Process  p  =  Runtime.getRuntime().exec(    
  3.              "\"c:/program  files/<a href="http://dev.21tx.com/os/windows/" target="_blank">Windows</a>/notepad.exe\"");    
  4.                p.waitFor();    
  5.          }    
  6.    }    
  7.      
这样可以调用本地的bat程序或者exe程序,同样是安全性问题和路径问题,也许还会有稳定性问题的存在,这个方法也不可取。

最终,还是依靠龙图软件公司的一个控件达到了目的,其步骤如下:

1,安装控件。

2,加上<object>标签,代码如下:

  1. <OBJECT  
  2.           classid="clsid:A3E8EEE9-E85E-472A-AEB3-EB182A605C62"  
  3.          codebase="/${res}/ocx/AppCallerXControl.ocx#version=1,0,0,0"  
  4.           width="0"  
  5.           height="0"  
  6.           visible="0"   
  7.           id="AppCaller"  
  8.         >  
  9.         </OBJECT>  

/${res}/ocx/AppCallerXControl.ocx表示控件的路径,id表示控件的对象,可以调用控件类中的方法。
  1. <script LANGUAGE="javascript">  
  2.         function clientInvoke(name,code){  
  3.          AppCaller.callApp(name,code);  
  4.         }  
  5. </script>  
clientInvoke 函数表示按钮或者链接的点击事件,name作为该按钮或者链接的标识,要保证其唯一性。code是附加参数,用来与某些固定软件建立连接,一般可以随便书写。

3,并在浏览器上方出现

时,加载activeX。

点击按钮或者链接时,出现选择exe程序的选择框:

找到该exe程序或者快捷方式(当然,其他的也是可以的,比如是一个静态的html页面,bat程序,txt程序都可以,会执行其默认的打开方式)。

注意:该链接一旦与一个软件(或其他)建立关系之后,以后再点击该链接将不需要重新选择,会直接打开,因为在注册表里该链接与该软件的路径已经建立了关联,如图所示:


如图,前面的键值都是唯一的,后面的数据表示软件或者文件的路径,这样就已经完成了绑定,如果要更改绑定,就要在注册表中删除该项,或者更改连接中的键值。

控件下载的链接:控件下载

如上所示,在win7环境下有时候不行,打开ie的时候 要使用取得管理员权限就可以了,第一次,注册之后就可以不用这样了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值