2014-10-28 159 views
0

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

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

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

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

例如,如果用户点击链接“ADOBE READER”,那么Adobe应用程序应该拿开/启动。

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

我已经跨越签名的小概念,在这里我们将调用使用标签,&内

小程序,我们将调用桌面应用中登录web页面即小程序来。

通过使用小程序的方式,我创建了一个签名的小,&我能够在小程序直接提供这样的路径打开记事本应用:

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

但我怎么能做到这一点在通用方式,意味着记事本应用程序或任何其他软件可以安装在系统的任何地方。

所以我们不知道应用程序的安装路径,那么有没有什么办法可以通过提供服务名称来启动它们?

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

我为什么最终用户想要打开桌面应用程序。从网页上的链接?这对你来说似乎不是那么简单吗?就像尾巴摇摆着狗一样。 – 2014-10-29 00:47:03

回答

1

我通过注册所述目标应用程序作为一个协议处理程序处理这个问题,无论是目标应用程序本身,或有保证要被客户端计算机上安装了一个代表应用程序。

然后使用形式的链接:MYAPP:// someaction /为arg0/ARG1

然后MYAPP:// someaction /为arg0/ARG1将被传递到您的应用作为命令行参数然后您可以解析并执行相应的操作。

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

所以你的情况,你可以:

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

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

+0

在我的情况下,桌面应用程序已经安装,我只需要从网页链接启动它们。 – Java 2014-10-28 10:16:08

+0

使用这种方法,您需要按照以上MSDN文档在客户机上的HKEY_CLASSES_ROOT中注册应用程序作为协议处理程序,然后使用** myapp:// anything **将链接添加到您的网页,浏览器将打开你的应用。 – 2014-10-28 11:13:28

+0

如果应用程序是你的,你可以自己注册 – 2014-10-28 11:17:40

相关问题