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

时间:2014-10-28 09:31:42

标签: java web applet desktop-application signed-applet

是否可以从网络上启动客户端桌面应用程序,例如 Adob​​e Reader,任何游戏或任何其他软件

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

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

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

例如,如果用户点击链接" Adob​​e Reader "然后Adobe应用程序应该打开/启动。

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

我遇到了签名的applet概念,我们将从网页上调用已签名的applet,即使用tag,&在里面

applet我们将调用桌面应用程序。

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

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

但是如何以通用的方式执行此操作,意味着记事本应用程序或任何其他软件可以安装在系统的任何位置。

所以我们不会对应用程序的安装路径有所了解,所以有什么方法可以通过提供这样的服务名称来启动它们作为服务?

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

所以在你的情况下,你可以:

  • 创建一个脚本/注册表项,用于注册目标应用程序的协议,并让客户端下载并安装它。然后你可以使用例如网页添加可以从网页启动的myapp://读取器/
  • 创建一个应用程序(处理程序)并让客户端安装它,然后处理程序将从URL中获取目标应用程序,例如: myapp:// reader / document或者只是myapp://阅读器在客户端计算机上打开“Adobe Reader”。

如果您想根据网址中指定的args执行更多操作,第二种方法尤其有用。