【问题标题】:Ways to invoke a Windows application through a http URL?通过 http URL 调用 Windows 应用程序的方法?
【发布时间】:2011-04-11 18:01:02
【问题描述】:

我有一个 Windows 桌面应用程序,我希望用户能够通过 URL 调用它。主要思想是,他们可以使用某些命令行参数启动已安装的应用程序,例如通过电子邮件中的链接。此外,最佳 实现将处理用户没有已经 安装应用程序的情况,以便他们掉入下载链接。 (可能下载位置是用户网络上的一台机器,不一定是网址)。

冒着使这成为 X 和 Y 问题的风险,这是我考虑过的:

为了只调用一个已经安装的应用程序,我考虑过实现一个自定义协议处理程序 (msdn article),但这会给他们一个类似 myapp://whatever?blar=123。如果他们尚未安装应用程序,则此 url 将不起作用,并且他们不会被重定向到下载应用程序。

我考虑过在后台运行的 WCF REST 侦听器服务,因此链接可以使用 http 并像 http://some-network-machine/whatever?blar=123 一样制定,如果安装了应用程序,它将捕获调用并启动应用程序,并且如果没有安装,调用将通过“some-network-machine”提供下载页面。我只是在学习 WCF,所以我不知道这是否可能(处理针对不同机器的调用)?

总结:我希望用户能够通过 URL 调用我的应用程序,如果尚未安装该应用程序,则可以将他们定向到该应用程序的下载页面.感谢任何想法、专业知识或类似经验。

【问题讨论】:

    标签: windows wcf http


    【解决方案1】:

    你可以像 Spotify 那样做。

    (Spotify 是目前主要在欧洲提供的免费音乐流媒体服务:http://www.spotify.com 你应该没听说过吧。它有不少社交/分享功能)

    例如,你可以复制和分享诸如

    之类的HTTP链接

    http://open.spotify.com/track/6DHrdGLyfF01vz17Bl2O7O

    然后尝试打开spotify:track:6DHrdGLyfF01vz17Bl2O7O 链接。如果您没有安装该应用程序,它将失败,您可以使用该页面上的信息来安装该应用程序。

    【讨论】:

    • 这是一种有趣的方法,很可能是我最终采用的方法。当然,缺点是它需要额外的步骤来打开浏览器,即使他们确实已经安装了应用程序。
    【解决方案2】:

    考虑到,您的 Web 应用程序知道应用程序启动 exe 文件的位置, 您只能通过 javascript 在客户端执行 exe。

    试试这个:- http://forums.asp.net/t/1643217.aspx/1?How+to+open+exe+program+which+installed+on+client+machine+asp+net+C+

    http://forums.asp.net/t/1124574.aspx
    

    【讨论】:

    • 用户机器上的安装位置从来都不是确定的(例如,Program Files 与 Program Files (x86))。否则,这个答案与上面 Dotmister 的答案并没有不同,除了他的答案假定自定义协议已在用户的机器上注册(即 myapp://)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    相关资源
    最近更新 更多