从网页链接打开客户端的桌面应用程序

人气:746 发布:2022-10-16 标签: web java desktop-application applet signed-applet

问题描述

是否可以从Web启动客户端桌面应用程序,如Adobe Reader、任何游戏或任何其他软件?

我有一个链接How to launch an EXE from Web page (asp.net)

其中一人让位于使用Java脚本打开记事本(桌面应用程序),该脚本仅限于IE。

以类似方式,我想在我的网页上创建这样的链接,以便如果用户点击像

例如,如果用户单击链接"Adobe Reader",则应打开/启动Adobe应用程序。

有没有办法从Web打开任何桌面应用程序?

我遇到了签名小程序的概念,我们将从网页中调用签名小程序,即使用标签

我们将称为桌面应用程序的小程序。

通过Applet的方式,我创建了一个签名的Applet,&;我可以通过在Applet中直接提供如下路径来打开记事本应用程序:

Process process = new ProcessBuilder("C:\Windows\notepad.exe").start();

但我如何才能以通用方式完成此操作,这意味着可以在系统中的任何位置安装记事本应用程序或任何其他软件。

所以我们不知道应用程序的安装路径,那么有没有方法可以像这样提供服务名称来将它们作为服务启动??

Process process = new ProcessBuilder("notepad.exe").start();

推荐答案

我通过将目标应用程序注册为协议处理程序来处理此问题,协议处理程序可以是目标应用程序本身,也可以是保证安装在客户端计算机上的委托应用程序。

然后使用表单中的链接:myapp://someaction/arg0/arg1

然后myapp://omeaction/arg0/arg1将作为命令行参数传递给您的应用程序,然后您可以分析并执行相应的操作。

这里有一篇关于如何实现这一点的MSDN文章:http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx

因此,在您的情况下,您可以:

创建一个脚本/注册表项来注册目标应用程序的协议,并让客户端下载并安装它。然后,您可以使用例如myapp://Reader/从网页添加Can启动 创建一个应用程序(处理程序)并让客户端安装它,然后处理程序将从URL获取目标应用程序,例如 Myapp://Reader/Document或仅myapp://Reader在客户端计算机上打开"Adobe Reader"。

如果要根据URL中指定的参数执行更多操作,则第二种方法特别有用。

136