当前位置:  开发笔记 > 运维 > 正文

如何在服务上运行Windows GUI应用程序?

如何解决《如何在服务上运行WindowsGUI应用程序?》经验,为你挑选了2个好方法。

我有一个应该已作为服务实现的现有GUI应用程序.基本上,我需要能够远程登录和退出Windows 2003服务器,并仍然保持此程序运行.

这甚至可能吗?

编辑:这里进一步细化...我没有源,它不是我的应用程序.



1> McKenzieG1..:

Windows服务不能有GUI,因此您需要摆脱GUI或将应用程序分成两部分 - 一个没有UI的服务和一个"控制器"应用程序.如果你的源代码,非GUI代码转换为服务很容易 - Visual Studio中有一个"Windows服务"的项目类型负责包装的对你,有一个简单的演练,展示了如何创建一个负责安装的部署项目.

如果您选择了第二条路线,需要把一些原来的GUI代码到控制器,控制器和服务可以与你自己定义的协议通过WCF,.NET远程处理或纯套接字连接进行通信.如果您使用远程处理,请务必使用"粗略"接口,该接口使用尽可能少的方法调用来传输数据 - 每次调用都有相当大的开销.

如果UI非常简单,您可以使用输入和日志文件的配置文件或输出的Windows事件日志.


@labilbe - Windows服务绝对有可能产生具有GUI的进程.这可能是打印机服务正在做的事情.这与具有GUI的服务进程本身不同.同样,Windows操作系统的某些部分有时可以执行其他方式不允许的操作.
错了 Windows服务可以具有GUI。打印机服务就是这种情况,它能够显示一个窗口。

2> JeffV..:

有没有人使用过第三方产品:Always Up?

似乎做我需要的.它能够持续运行我需要的登录/注销周期.并且能够忽略它是一个GUI应用程序并运行它无论如何.

它们必须手动链接到exe并调用WinMain或其他东西.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有