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

时间:2010-06-16 22:17:18

标签: windows internet-explorer browser activex

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

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

我正在严格谈论Windows宇宙。

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

在使用ActiveX的IE中尝试这个是明智的吗?

9 个答案:

答案 0 :(得分:54)

答案 1 :(得分:21)

正确的方法是如下在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”。您将在exe中收到整个网址作为参数,您需要在exe中进行处理。用您选择的文本更改“ customurl”。

答案 2 :(得分:9)

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

例如,您可以将RDP连接保存为.rdp文件。将您网站上的链接设置为此类应允许用户直接启动到RDP会话:

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

答案 3 :(得分:1)

我们使用sonicwall vpn。它启动了一个java applet,它启动了所有凭据设置的mstc。如果没有java applet或activex插件,你真的不能这样做。

Microsoft在其小型企业服务器上使用此技术来进入网络。我不想说这是一个可怕的想法,只要平台独立性不重要。

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

示例代码here

答案 6 :(得分:1)

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

test

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

答案 7 :(得分:-1)

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

或者,您可以这样做:

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

答案 8 :(得分:-5)

您可以使用以下内容:

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

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