JAVA自定义协议实现网页启动应用程序

来源:互联网 发布:淘宝95095买药靠谱吗 编辑:程序博客网 时间:2024/06/08 00:42

        怎样从网页上直接启动客户端应用程序?像启动 QQ、淘宝旺旺那样,从过点击网页里的超链接,就直接启动一个本地程序。面对这种情况也许你会想到ActiveX,但当你发现对方的客户们用IE浏览器的很少,而大多数用浏览器并不支持ActiveX,像这种具有不安全操作的ActiveX还得需要相关安全设置和数字签名的时候,你会放弃这种想法。
        这时再介绍一种方法给你,那就是JAVA自定义协议,其实这种技术在我们上网时经常可以遇到,如在浏览器中敲ftp://xxxxx.xxx 时,浏览器会自动跳转到ftp客户端或者windows资源浏览器中打开;再如,如果我们安装了迅雷后,点击网页中xunlei://xxx.xxx时,系统会自动启动web迅雷或迅雷软件。我们在网页中点播放音乐或电影视频之类的点播按钮时(例如mms://xxx.xx),客户端相关的播放软件就会自动触发。这显然是某种协议与系统中的应用程序存在着一些关联,而且你可能发现这种现象可以发生在任何浏览器下,这也是这种方法的过人之处。
        那我们怎么样才能自定义这种协议呢,答案是修改注册表中的信息,编写个.reg文件来更新注册表,按照如下格式编写这个.reg文件并执行。
  Windows Registry Editor Version 5.00
  [HKEY_CLASSES_ROOT\自定义协议名称]
  @="URL:自定义协议名称 Protocol"
  "URL Protocol"=""
  [HKEY_CLASSES_ROOT\自定义协议名称\DefaultIcon]
  @="应用程序路径"
  [HKEY_CLASSES_ROOT\自定义协议名称\shell]
  @=""
  [HKEY_CLASSES_ROOT\自定义协议名称\shell\open]
  @=""
  [HKEY_CLASSES_ROOT\自定义协议名称\shell\open\command]
  @="应用程序路径" \"%1\""


  例如在网页中启动一个计算器的应用程序如下:
  Windows Registry Editor Version 5.00
  [HKEY_CLASSES_ROOT\TestCalc]
  @="URL:TestCalc Protocol"
  "URL Protocol"=""
  [HKEY_CLASSES_ROOT\TestCalc\DefaultIcon]
  @="c:\\windows\\system32\\calc,1"
  [HKEY_CLASSES_ROOT\TestCalc\shell]
  @=""
  [HKEY_CLASSES_ROOT\TestCalc\shell\open]
  @=""
  [HKEY_CLASSES_ROOT\TestCalc\shell\open\command]
  @="\"c:\\windows\\system32\\calc\" \"%1\""


  执行完这个.reg文件后,在浏览器中敲入TestCalc://xxx试试,你会发现,你的目的就达到了。

原创粉丝点击