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

问题描述 投票:0回答:8

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

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

我说的是严格意义上的 Windows 世界。

这件事在 ActiveX 和 IE 之外是否可行?

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

windows internet-explorer browser activex
8个回答
92
投票

正确的方法是在 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”替换为您选择的文本。


13
投票

@AbhijithCR 的回复效果很好。要通过 .bat 文件注册协议,请执行以下操作

set key=customurl 
reg add HKCR\%key% /ve /d "URL:Description" 
reg add HKCR\%key% /v "URL Protocol" /d "" 
reg add HKCR\%key%\shell 
reg add HKCR\%key%\shell\open 
reg add HKCR\%key%\shell\open\command /ve /d ""c:\path to\your.exe" ""%%1"""

对我来说,正确获取所有引号和双百分号是棘手的部分。


12
投票

你并不能真正意义上“启动应用程序”。 您可以按照您的指示要求用户打开文档(即 PDF),Windows 将尝试使用该文件类型的默认应用程序。 许多应用程序都有办法做到这一点。

例如,您可以将 RDP 连接保存为 .rdp 文件。 在您的网站上放置一个类似这样的链接应该允许用户直接启动到 RDP 会话:

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

8
投票

一些应用程序通过协议自行启动。就像带有“itms://”链接的itunes。但我不知道如何在 Windows 上注册它。


3
投票

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

微软在他们的小型企业服务器上使用这种技术来进入网络。只要平台独立性不重要,我不会说这是一个糟糕的想法。


0
投票

我能够通过here提到的方法来实现这一点,但是您将需要向应用程序添加深层链接,如果这不是您的应用程序,请尝试查找它的深层链接文档。


-6
投票

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

示例代码这里


-17
投票

我使用本地 Web 服务器和 PHP 实现了同样的目标。我使用包含

shell_exec
的脚本在本地启动应用程序。

或者,你可以这样做:

<a href="file://C:/Windows/notepad.exe">Notepad</a>
© www.soinside.com 2019 - 2024. All rights reserved.