通过WEB应用运行桌面应用

时间:2014-10-26 12:55:01

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

我的桌面应用程序可以通过" setup"安装在用户计算机上msi文件与任何其他应用程序一样。

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

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

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

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

如果可能的话,我宁愿不使用第二种方法,因为如果不参与第三方会更好 - 如果直接启动应用程序,它将更加用户友好。但是,任何帮助都将受到赞赏,因为在这一点上我不确定是否可以做到这一点。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

有很好的(安全性)原因导致很难从Web浏览器启动客户端进程。

您是否可以访问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

答案 2 :(得分:0)

如果您最终决定要求您的用户安装客户端应用程序并希望大多数用户在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 :(得分:0)

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

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

执行此操作后,php中的 exec(“ command”); 调用将调出桌面应用程序,就像从admin命令提示符处调用它一样。显然,您需要将apache服务器设置为可以从本地系统等外部访问。