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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从网页链接打开客户端的桌面应用程序相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

我遇到了签名的applet概念,我们将在网页上调用已签名的applet,即使用tag和inside

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

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

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

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

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

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

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

然后使用以下形式的链接: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:// reader在客户端计算机上打开“Adobe Reader”。

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

以上是关于从网页链接打开客户端的桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在html中啥不能在网页上通过链接直接打开客户端的发送邮件

如何通过 JavaScript 从服务器端的网页调用客户端 C# 程序函数?

使用 Apollo 客户端的片段组合:约定和样板

electron-updater实现electron应用程序更新

JSP基础

从服务器到客户端的消息