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


74

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

假设情况:用户浏览一个列出可以通过RDP管理的计算机的网站。他单击指向192.168.1.10的链接,该链接将打开Microsoft RDP客户端(mstsc.exe),其IP地址已填写。

我严格地说的是Windows Universe。

那东西在ActiveX和IE之外是否还可行?

在IE中使用ActiveX尝试这样做是否明智?


roblox.com是一个游戏网站,每个用户都必须安装其客户端并访问其网站以启动游戏客户端。因此,他们在直接从其站点启动应用程序的地方进行了设置。我查看了他们的消息来源,但他们没有按照
布伦丹

@ georgiaboy82,检查安装的应用程序是前端开发人员还是后端开发人员?
2016年

Answers:


10

您不能真正意义上的“启动应用程序”。您可以按照指示要求用户打开文档(即PDF),Windows会尝试使用该文件类型的默认应用程序。许多应用程序都有执行此操作的方法。

例如,您可以将RDP连接另存为.rdp文件。在您的站点上放置类似于以下内容的链接应允许用户直接启动RDP会话:

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

我只是在学习ActiveX是什么,因此我可以将其用于在浏览器中运行应用程序。难道这不可能吗?我尝试按照以下说明从浏览器启动记事本,尽管它不起作用。codeproject.com/Articles/113678/...
CELERITAS

2
@Celeritas:仅在Windows和旧版IE中有效。这是一项逐渐淘汰的老技术,而且还不会很快。
siride

22

正确的方法是在Windows注册表中注册您的自定义URL协议,如下所示:

[HKEY_CLASSES_ROOT\customurl]
@="Description here"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\customurl\shell]

[HKEY_CLASSES_ROOT\customurl\shell\open]

[HKEY_CLASSES_ROOT\customurl\shell\open\command]
@="\"C:\\Path To Your EXE\\ExeName.exe\" \"%1\""

一旦添加了上述键和值,就可以从网页中调用“ customurl:\\ parameter1 = xxx&parameter2 = xxx”。您将收到整个url作为exe中的参数,您需要在exe中进行处理。用您选择的文本更改“ customurl”。


1
您好....如何检测是否未安装应用程序,如果未安装,则应下载安装程序?例如,如果我customurl://使用JavaScript在浏览器中调用,并且已安装该应用程序,则该应用程序将运行,但是,如果未安装该应用程序,并且该URL在Chrome中被调用,则会显示Google搜索页面,结果为customurl://。你知道怎么做吗?
jstuardo

不确定是否还有其他解决方法,但是我想到的一个快速主意是-如果您可以向服务器报告应用程序已打开,并且超时,则将用户重定向到下载页面或应用程序的网络实现。在应用程序正在报告时,利用从网页传递的令牌来识别客户端实例。
阿比吉斯CR

5

某些应用程序通过协议启动。喜欢带有“ itms://”链接的iTunes。但是我不知道如何在Windows中注册。


我知道这个线程很旧,我有同样的问题。关于如何安装协议处理程序,有大量信息,但是我无法在每个用户的计算机上工作(IT会杀了我……)
nurchi 2014年

4
您不应该在每个用户的计算机上手动执行此操作。这是您的应用程序在安装过程中应执行的操作。
米哈伊尔

3

我们使用sonicwall vpn。它会启动一个Java小程序,并使用所有凭据设置启动MSTC。没有Java applet或activex插件,您真的无法做到这一点。

Microsoft本身在小型企业服务器上使用此技术来进入网络。只要平台独立性不重要,我就不会说这是一个糟糕的主意。


-2

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

此处的示例代码


Silverlight现在已经死了。Microsoft(或其他任何人)不再支持它。TBH实际上是其灭亡的原因之一,它能够执行此类操作是一个巨大的安全漏洞。
利亚姆

-7

我使用本地Web服务器和PHP实现了相同的目的。我使用了包含shell_exec在本地启动应用程序的脚本。

或者,您可以执行以下操作:

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

28
请注意,这shell_exec将在Web服务器上运行应用程序。至于链接,通常会导致文件被下载。
James P.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.