【问题标题】:Launch an application within a browser在浏览器中启动应用程序
【发布时间】:2014-05-14 07:02:52
【问题描述】:

我知道您可以使用以下代码行通过浏览器启动应用程序,但它会将应用程序显示为新窗口。我正在寻找的是如何让应用程序显示在浏览器窗口中?它不一定是记事本。任何应用程序都可以正常工作,因为现在我只是在进行概念验证。我可能最终会编写一个小的 c# 应用程序来做我需要做的事情。任何信息都有帮助。

这是我的代码:

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

编辑:

假设它只能在浏览器之外启动,有没有办法将信息传递给应用程序?任何信息都有帮助。谢谢。

【问题讨论】:

  • 不知道这是可能的,所以我给了它一个谷歌。发现这个显示了如何使用 wpf 或其他东西在浏览器窗口中显示 winform。 - codeproject.com/Articles/31429/…
  • 这与从浏览器启动应用程序不同。 WPF 只是同一应用程序的另一个视图,但对于您自己的应用程序来说,这是朝着正确方向迈出的一步。尽管未以这种方式配置,但您无法运行其他应用程序。

标签: c# javascript html web-applications


【解决方案1】:

你不能——至少不能使用任意应用程序。应用程序必须专门编写为 Web 浏览器插件,以使网页能够在浏览器中显示应用程序的 UI。

传统上,这是通过NPAPIActiveX 完成的。 ActiveX 仅支持 IE,并且正在从 Chrome 中删除 NPAPI 支持。

总之,这不是你想走的路。

浏览器是为显示网页而构建的,因此如果您想在浏览器中显示 UI,请使用网络技术编写它。

如果您有某种特殊需求,用户会将您的软件安装在他们的机器上,我过去成功使用的一种方法是让该应用在特定的非标准端口上运行小型 HTTP 服务器.然后,您的 Web 应用程序(通过您的 Web 服务器正常访问)可以向本地软件发出 CORS AJAX 请求。 (IE,http://localhost:12345/privileged-action)。


如果您只想在自己的窗口中启动您的应用,您应该register a custom protocol handler。然后,您可以在调用您的应用程序并传递参数的网页中添加一个常规链接。

<a href="myapp:foobar">Open MyApp</a>

如果您将您的应用注册为myapp 协议的处理程序,它将以 URL 作为参数运行它。

C:\path\to\app.exe "myapp:foobar"

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2011-06-05
    相关资源
    最近更新 更多