如何将Windows GUI应用程序作为服务运行?
如何将Windows GUI应用程序作为服务运行?
我有一个现有的 GUI 应用程序,本应实现为服务。基本上,我需要能够远程登录和注销 Windows 2003 服务器,同时仍然保持该程序运行。
这种情况有可能吗?
编辑:进一步的细化...我没有源代码,这不是我的应用程序。
admin 更改状态以发布 2023年5月20日
有人使用过第三方产品,比如:Always Up吗?
看起来可以满足我的需求。我需要它可以在登录/注销周期中持续运行。而且还能忽略它是一个GUI应用程序,无论如何都可以运行它。
他们必须手动链接到exe并调用WinMain或其他函数。
Windows服务不能拥有GUI界面,因此您需要将GUI界面删除或将应用程序分成两个部分——没有UI的服务和一个“控制器”应用程序。如果您有源代码,将非GUI代码转换为服务很容易——Visual Studio有一个“Windows Service”项目类型,可以为您完成打包工作,而且还有一个简单的步骤说明,向您展示如何创建部署项目,以进行安装。
如果选择第二条路线并需要将某些原始GUI代码放入控制器中,则控制器和服务可以通过WCF、.NET Remoting或使用您自己定义的协议的普通socket连接进行通信。如果使用Remoting,请确保使用“厚重”的接口,尽可能少地调用方法进行数据传输——每次调用都有相当大的开销。
如果UI界面相对简单,则可以使用配置文件进行输入和日志文件或Windows事件日志进行输出。