none
【C#】一个exe是否可以同时作为windows服务和前台程序? RRS feed

  • 问题

  • 如题。

    作为服务时,默默在后台根据配置文件中的参数工作;当用户启动这个exe时,并不另开进程,而是呼出窗体界面,此时exe跃身变成窗体程序,允许用户做一些设置,完了将设置保存进配置文件,窗体关闭时并不结束进程,而是又转回服务的角色,同时又根据新的参数继续工作~呵呵,应该是有点异想天开了,主要是我对windows服务体系还没入门,还请大家结合我想要的目的,给出合理的解决方案,谢谢。

    正统的办法是否是分别建两个项目,一个前台程序,一个后台服务,用户可以执行的只有前台程序,通过对前台程序的一些操作可以控制后台服务的工作,后台服务执行的情况可以写入windows日志,回过来前台程序通过读取并呈现日志,从而让用户了解后台程序的工作情况~是这样吗?

    2012年11月1日 14:36

答案

  • 一个进程只能属于一个窗口站。服务会话和用户会话有各自的窗口站。

    你可以用同一个二进制文件,根据是否运行在互动会话来执行服务或者界面的代码,不过这两个环境需求不同,很少人会这么做,一般都是一个服务程序一个界面程序,之间通过各种进程间通讯方式联系。



    Visual C++ MVP

    • 已标记为答案 ahdung_AI 2012年11月2日 1:38
    2012年11月1日 15:33
    版主

全部回复

  • 一个进程只能属于一个窗口站。服务会话和用户会话有各自的窗口站。

    你可以用同一个二进制文件,根据是否运行在互动会话来执行服务或者界面的代码,不过这两个环境需求不同,很少人会这么做,一般都是一个服务程序一个界面程序,之间通过各种进程间通讯方式联系。



    Visual C++ MVP

    • 已标记为答案 ahdung_AI 2012年11月2日 1:38
    2012年11月1日 15:33
    版主
  • 我理解了一些,之前有听过窗口站的概念,谢谢蒋工,我继续捣腾

    2012年11月2日 1:37