如何从浏览器启动应用程序?

是否可以从浏览器启动应用程序? 我并不是指从浏览器打开文件(如使用Adobe Reader打开PDF),而是打开安装在用户计算机上的应用程序的新(空白)实例。

假设情况:用户浏览列出可通过RDPpipe理的计算机的网站。 他点击链接到192.168.1.10,该链接打开Microsoft RDP客户端(mstsc.exe)与该IP地址已经填写。

我正在严格谈论Windows的世界。

这个东西甚至可以在ActiveX和IE之外实现吗?

在IE中使用ActiveX进行尝试是否明智?

你真的不能真正“启动一个应用程序”。 您可以如您所示要求用户打开文档(即PDF),Windows将尝试使用该文件types的默认应用程序。 许多应用程序都有办法做到这一点。

例如,您可以将RDP连接另存为.rdp文件。 把你的网站链接到这样的事情应该允许用户直接启动到RDP会话:

<a href="MyServer1.rdp">Server 1</a> 

您想要创build一个asynchronous可插入协议处理程序 。

这是一个注册应用程序协议的指南 。

我们使用sonicwall vpn。 它启动一个java小程序,启动所有凭据设置的mstc。 如果没有Java applet或者activex插件,你真的无法做到这一点。

微软使用这种技术本身在他们的小型企业服务器上进入networking。 我不会说这是一个可怕的想法,只要平台独立并不重要。

我使用本地Web服务器和PHP实现了同样的function。 我使用了一个包含shell_exec的脚本来在本地启动一个应用程序。

或者,你可以做这样的事情:

 <a href="file://C:/Windows/notepad.exe">Notepad</a> 

您可以使用SilverLight从浏览器启动应用程序(这只适用于IE和Firefox,较新版本的Chrome不支持此function)

示例代码在这里

一些应用程序通过协议启动。 像itunes:“itms://”链接。 我不知道你怎么可以注册与Windows。

您可以使用以下内容:

 <a href="c:\windows\Notepad.exe" type="application/octet-stream">Launch Notepad</a> 

从我记得使用file://被Chrome和Firefox阻止。