Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何从浏览器启动应用程序?_Windows_Internet Explorer_Browser_Activex - Fatal编程技术网

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

Windows 如何从浏览器启动应用程序?,windows,internet-explorer,browser,activex,Windows,Internet Explorer,Browser,Activex,是否可以从浏览器启动应用程序?我说的不是从浏览器打开文件(比如用Adobe Reader打开PDF),而是打开安装在用户机器上的应用程序的新(空白)实例 假设情况:用户浏览一个列出可以通过RDP管理的计算机的网站。他点击192.168.1.10的链接,该链接打开已填写ip地址的Microsoft RDP客户端(mstsc.exe) 我说的是严格意义上的Windows宇宙 在ActiveX和IE之外,这是可行的吗 在IE中尝试使用ActiveX是否明智?我们使用sonicwall vpn。它启动一

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

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

我说的是严格意义上的Windows宇宙

在ActiveX和IE之外,这是可行的吗


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

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


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

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

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

例如,您可以将RDP连接保存为.RDP文件。在您的站点上添加指向以下内容的链接应允许用户直接启动RDP会话:

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

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

或者,您可以这样做:

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

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


示例代码

正确的方法是在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"""

对我来说,获得所有的引号和双百分号是一个棘手的部分。

请注意,
shell\u exec
将在web服务器上运行应用程序。至于链接,它通常会导致文件被下载。我知道这个线程很旧,我也有同样的问题。有很多关于如何安装协议处理程序的信息,但我不能在每个用户的机器上都这样做(它会杀死我…),你不应该在每个用户的机器上手动这样做。这是应用程序在安装过程中应该执行的操作。是一个游戏网站,每个用户都必须安装他们的客户端并访问他们的网站来启动游戏客户端。因此,他们将其设置为直接从其站点启动应用程序。我查看了他们的资料,他们没有像brendan说的那样…@georgiaboy82,检查安装的应用程序是前端开发人员还是后端开发人员的工作?我只是在学习ActiveX是什么,我知道它可以用于在浏览器内运行应用程序。那么这难道不可能吗?我试着按照这些说明从浏览器中启动记事本,尽管它不起作用@Celeritas:这只适用于Windows和旧版本的IE。这是一项正在被淘汰的旧技术,而且不会太快。。微软(或其他任何人)不再支持它。TBH这实际上是它消亡的原因之一,它能够做这样的事情是一个巨大的安全漏洞。你好。。。。如何检测应用程序是否未安装,如果未安装,则应下载安装程序?例如,如果我使用JavaScript在浏览器中调用
customurl://
,并且如果安装了应用程序,则会运行该应用程序;但是,如果未安装应用程序,并且在Chrome中调用该URL,则会出现Google搜索页面,搜索结果为
customurl://
。你知道怎么做吗?不确定是否还有其他干净的方法,但我想到了一个简单的想法——如果你能让你的应用程序向服务器报告它已打开,如果超时,请将用户重定向到你的应用程序的下载页或web实现。在应用程序报告时,使用从网页传递的令牌来标识客户端实例。您好。。。我需要用这个打开VLC。但如果我添加参数(与HTML文件在同一文件夹中的视频文件),vlc会回答我:无法打开MRL'file:///C:/Windows/system32/spustvlc%3A%255C%255CParameter1%3DAMT-TC-18493_FM_u000000.mp4'。我的命令是:“c:\ProgramFiles(x86)\VideoLAN\VLC\VLC.exe”“%1”,并以html格式: