是否可以从浏览器启动应用程序?我不是在谈论从浏览器打开文件(例如使用 Adobe Reader 打开 PDF),而是打开安装在用户计算机上的应用程序的新(空白)实例。
假设情况:用户浏览一个网站,其中列出了可以通过 RDP 管理的计算机。他单击指向 192.168.1.10 的链接,该链接将打开 Microsoft RDP 客户端 (mstsc.exe),其中已填写该 IP 地址。
我说的是严格意义上的 Windows 世界。
这件事在 ActiveX 和 IE 之外是否可行?
在 IE 中使用 ActiveX 尝试这样做是否明智?
正确的方法是在 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¶meter2=xxx
。您将收到整个 url 作为 exe 的参数,您需要在 exe 中对其进行处理。将“customurl”替换为您选择的文本。
@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"""
对我来说,正确获取所有引号和双百分号是棘手的部分。
你并不能真正意义上“启动应用程序”。 您可以按照您的指示要求用户打开文档(即 PDF),Windows 将尝试使用该文件类型的默认应用程序。 许多应用程序都有办法做到这一点。
例如,您可以将 RDP 连接保存为 .rdp 文件。 在您的网站上放置一个类似这样的链接应该允许用户直接启动到 RDP 会话:
<a href="MyServer1.rdp">Server 1</a>
一些应用程序通过协议自行启动。就像带有“itms://”链接的itunes。但我不知道如何在 Windows 上注册它。
我们使用 sonicwall VPN。它启动一个 java 小程序,该小程序启动带有所有凭据设置的 mstc。如果没有 java applet 或 activex 插件,你真的无法做到这一点。
微软在他们的小型企业服务器上使用这种技术来进入网络。只要平台独立性不重要,我不会说这是一个糟糕的想法。
我能够通过here提到的方法来实现这一点,但是您将需要向应用程序添加深层链接,如果这不是您的应用程序,请尝试查找它的深层链接文档。
您可以使用 SilverLight 从浏览器启动应用程序(这仅适用于 IE 和 Firefox,较新版本的 chrome 不支持此功能)
示例代码这里
我使用本地 Web 服务器和 PHP 实现了同样的目标。我使用包含
shell_exec
的脚本在本地启动应用程序。
或者,你可以这样做:
<a href="file://C:/Windows/notepad.exe">Notepad</a>