怎样从网页上直接启动客户端应用程序?像启动 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试试,你会发现,你的目的就达到了。