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

Gor*_*oro 59 browser windows internet-explorer activex

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

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

我正在严格谈论Windows宇宙.

这个东西在ActiveX和IE之外是否可行?

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

Abh*_*C R 44

正确的方法是在 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\""
Run Code Online (Sandbox Code Playgroud)

添加上述键和值后,从网页中,只需调用 "customurl:\\parameter1=xxx¶meter2=xxx" 。您将收到整个 url 作为 exe 中的参数,您需要在 exe 中对其进行处理。使用您选择的文本更改“customurl”。

  • 您好....我如何检测应用程序是否未安装,如果没有安装,应该下载安装程序?例如,如果我使用 JavaScript 在浏览器中调用“customurl://”,并且如果安装了应用程序,则它会运行,但是,如果未安装应用程序,并且在 Chrome(Google 搜索页面)中调用该 URL显示结果为“customurl://”。你知道该怎么做吗? (3认同)

car*_*arl 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"""
Run Code Online (Sandbox Code Playgroud)

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

  • @sintek-solutions 在可执行路径周围转义双引号 [像这样](https://community.notepad-plus-plus.org/topic/18130/replace-notepad/4?_=1655148848879&lang=en-US) 注册了协议没有错误: `reg add HKCR\%key%\shell\open\command /ve /d "\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"%%1\""`。但我仍然[无法使我的链接工作](/sf/ask/214030351/?noredirect=1#comment128259749_61136606)。你@Gaurav 吗? (2认同)

bre*_*dan 9

你真的不能真正"推出一个应用程序".您可以按照指示要求用户打开文档(即PDF),Windows将尝试使用该文件类型的默认应用程序.许多应用程序都有办法做到这一点.

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

<a href="MyServer1.rdp">Server 1</a>
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这是被接受的答案,因为它是错误的。@abhijith 的答案是正确的。我们使用 Windows exe 来完成此操作。我们的用户可以通过电子邮件发送类似“myapp://do-this”的 URL,只要协议已注册,程序就会打开。 (3认同)
  • @Celeritas:这只适用于 Windows 和旧版本的 IE。这是一项正在逐步淘汰的旧技术,而且不会很快。 (2认同)
  • 我认为这个答案是错误的。您只需注册自己的协议,例如“mailto”。例如,如果您调用 &lt;mailto:list@example.org?In-Reply-To=%3C3469A91.D10AF4C@ example.com%3E&gt; (https://datatracker.ietf.org/doc/html /rfc6068#section-6.1)。 (2认同)

pas*_*ean 8

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

  • 您不应该在每个用户的机器上手动执行此操作。这是您的应用程序在安装过程中应该执行的操作。 (6认同)