【问题标题】:Run desktop app via WEB app通过 WEB 应用程序运行桌面应用程序
【发布时间】:2014-12-21 18:47:52
【问题描述】:

我有桌面应用程序,可以像任何其他应用程序一样使用“设置”msi 文件安装在用户计算机上。

我正在开发 Web 应用程序,我需要以某种方式将桌面应用程序与 Web 应用程序集成。 Web应用使用PHP开发(桌面应用使用C#开发),点击Web应用上的一个按钮,桌面应用需要启动。

有没有办法做到这一点?我在想几个场景:

-如果可能的话,也许直接在服务器上安装应用程序并从那里启动它?

-也许要求用户在他的计算机上安装应用程序并从那里调用应用程序?

如果可能的话,我宁愿不使用第二种方法,因为如果第三方不参与会更好 - 如果应用程序直接启动会更加用户友好。但我们将不胜感激任何帮助,因为在这一点上我不确定这是否可能完成。

【问题讨论】:

    标签: c# php web-applications integration desktop-application


    【解决方案1】:

    您可以在服务器上安装应用程序并使用 exec() 或 "`" 运算符运行它 - 但要控制应用程序的 gui,您需要使用 autoit ant 等。

    【讨论】:

    • 你能告诉我如何在服务器上安装桌面应用程序吗?我找不到。
    • 你有哪个服务器和哪个应用程序?
    • 我有基于 Linux 的服务器,并且有用于安装桌面应用程序的 msi 文件。桌面应用以前是用 C# 开发的。
    【解决方案2】:

    如果您最终决定要求您的用户安装客户端应用程序并希望大多数用户使用 Windows,您可以注册您的应用程序以处理特定方案并在启动时解析其命令行。更多信息在这里:

    http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

    您将注册一个自定义方案,然后在应用程序的命令行参数中拦截。整个 URL 将作为参数传递,例如:

    myapp://parameter1,parameter2
    

    浏览器将主要询问用户是否信任应用程序来处理此方案,并选择记住此设置。

    如果您无权访问客户端应用程序的源代码,您可以开发一个中间件,一种处理 URL 的启动器,然后在可能根据 URL 修改一些配置文件后运行客户端应用程序或以其他方式控制第三方应用程序按照您的方式行事。

    至于解决方案#1,如果您的应用程序可以在 Mono 上运行,我认为 C# 并不重要,因此您应该能够只从 PHP 运行它。但是,这可能不适用于虚拟主机,您必须为此获得 VPS。

    【讨论】:

      【解决方案3】:

      很难从网络浏览器启动客户端进程有很好的(安全)原因。

      您可以访问 C# 应用程序的源代码吗?如果是这样,您可以考虑对其进行修改以利用 Microsoft ClickOnce 部署。

      一些参考资料:

      http://msdn.microsoft.com/en-us/library/t71a733d.aspx

      http://msdn.microsoft.com/en-us/library/t71a733d(v=vs.80).aspx

      http://msdn.microsoft.com/en-us/library/6ae39a7c.aspx

      http://www.codemag.com/Article/0902031

      这是一篇关于使用 Visual Studio 2005 通过 ClickOnce 部署 WinForms 应用程序的旧文章:http://msdn.microsoft.com/en-us/library/ms953320.aspx

      【讨论】:

      • 是的,我可以访问源代码。所以让我们假设我已经部署了我的应用程序。我如何使用 ClickOnce 安装程序来解决我的问题?一切都描述得太笼统了,我找不到与上述问题的关系,你能给我指点吗?
      • 嗯,这可能需要您进行一些研究。 ClickOnce 支持 WPF 应用程序 (.xbap)、控制台应用程序 (.exe) 和 Office 解决方案 (.dll)。如果您的应用程序使用 WinForms/Win32,您可能需要做一些工作才能将其转换为 WPF 应用程序。或者你可以用 WPF shell 包装它,然后用 ClickOnce 部署它。
      • 我在帖子中添加了一些额外的参考资料。
      【解决方案4】:

      这可以通过 IIS 完成,但将其设置为以当前用户身份运行可能会很麻烦,尤其是因为它可能还需要为需要附加到当前用户桌面的应用程序运行提升权限。

      最简单的方法是安装 Windows LAMP 发行版(如 WAMP:http://www.wampserver.com/en/),然后直接从提升的(管理员)命令提示符运行 httpd.exe;不要将 apache 作为服务运行!

      执行此操作后,php 中的 exec("command"); 调用将打开一个桌面应用程序,就好像它是从管理员命令提示符调用一样。显然,您需要将 apache 服务器设置为可从本地系统外部访问,等等。

      【讨论】:

        猜你喜欢
        • 2020-12-21
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多