windows - 如何将 Windows GUI 应用程序作为服务运行?

标签 windows user-interface windows-services legacy

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

这可能吗?

编辑:在这里进一步完善......我没有来源,这不是我的应用程序。

最佳答案

Windows 服务不能有 GUI,因此您需要摆脱 GUI 或将您的应用程序分成两部分 - 一个没有 UI 的服务和一个“ Controller ”应用程序。如果您有源代码,将非 GUI 代码转换为服务很容易 - Visual Studio 有一个“Windows 服务”项目类型,可以为您处理包装,并且有一个简单的演练向您展示如何创建一个负责安装的部署项目。

如果您选择第二条路线并且需要将一些原始 GUI 代码放入 Controller 中,则 Controller 和服务可以通过 WCF、.NET Remoting 或使用您自己定义的协议(protocol)的普通套接字连接进行通信。如果您使用 Remoting,请务必使用“矮胖”接口(interface),以尽可能少的方法调用来传输数据 - 每次调用都会产生相当大的开销。

如果 UI 相当简单,您可以使用配置文件作为输入和日志文件,或者使用 Windows 事件日志作为输出。

关于windows - 如何将 Windows GUI 应用程序作为服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53232/

相关文章:

python - 如何使用 python 创建 GUI 来获取用户输入并将其插入到 Excel 工作表中

java - Android:加快 Activity 之间的共享元素转换

windows - 戈朗 : how can I call win32 API without cgo?

windows - 如果我已经安装了 Microsoft VC++ 2017 运行时,是否还需要安装 Microsoft VC++ 2015 运行时可再发行组件?

c# - 与 Visual Studio 界面中的断点位于同一列的浅蓝色矩形的用途是什么?

java - 如何从一台机器向另一台机器发送HTTP请求

delphi - 自动更新服务

php - 在 PHP 中查找 Windows 用户名

c# - 如何找出在我的应用程序中导致 I/O 的原因?

.net - Windows 安装程序 : Error 1001, CustomAction _xxxxx.install 返回实际错误代码 1603