将C#窗口应用程序作为窗口服务

时间:2013-02-25 14:59:26

标签: winforms windows-services

我在C#中有一个桌面应用程序,我想把它作为一个窗口服务。是否可以将该应用程序作为Windows服务?基本上我想要一个在需要时显示gui的应用程序,并且最小化它会进入系统尝试,它也应该出现在服务中...对于应用程序,只需举例说明我的应用程序有一个计时器和多行文本字段,它也可以与数据库及其显示来自数据库的及时状态,所以当我需要看到它时,我可以从系统启动GUI吗?

任何形式的帮助都会受到高度关注。谢谢!

2 个答案:

答案 0 :(得分:3)

您需要将应用程序分开。 Windows服务和桌面。您需要在Windows服务中构建API挂钩,以允许从桌面应用程序和服务进行通信。我会为此推荐WCF。

简而言之,Windows服务不应与桌面交互。它将在与您登录的会话不同的会话中运行,即使您以运行该服务的同一帐户登录也是如此。

答案 1 :(得分:1)

无法在Windows服务中显示GUI。 你能做的是:

一个。从服务器逻辑中分离客户端逻辑,Windows服务将执行服务器端操作,并将WCF API暴露给客户端,客户端将处理与GUI相关的问题。

湾使用Service-O-Matic之类的外部工具来控制winforms应用程序,就好像它是一个Windows服务一样。见:

http://www.kwakkelflap.com/service.html