【发布时间】:2011-03-10 17:10:01
【问题描述】:
我有一个 C++ Win32 应用程序,它是作为 Windows GUI 项目编写的,现在我正试图将它变成一个服务/GUI 混合体。我了解 Windows 服务不能/不应该有用户界面。但请允许我解释一下我目前拥有的东西以及我的目标。
我现在拥有的 是一个 Windows 应用程序。当它运行时,它会在系统托盘中放置一个图标,您可以双击该图标来打开 GUI。此应用程序的目的是每晚处理位于指定目录中的文件。 GUI 由以下部分组成:
- 手动启动计划外扫描/进程的按钮。
- 用于打开修改设置对话框的按钮。
- 用于显示从处理线程发送的状态消息的列表框。
- 用于显示图像数据的自定义绘制窗口(文件处理包括图像的创建和保存)。
- 状态栏 - 当进程未运行时,它会显示下一次计划扫描的倒计时。在扫描期间,它还会提供一些状态反馈,包括进度条。
我的目标是一项将在启动时运行且无需用户登录的服务。这将包括预定的文件处理。但是,当用户登录时,我仍然希望加载托盘图标并允许他们打开我上面描述的 GUI 以监视服务的当前状态、更改设置、手动启动扫描并监视进度扫描。
我确信我见过这样的应用程序 - 即使我没有登录,它也可以作为服务使用,但在我登录后仍然给我一个用户界面。
我在想,与其让一个多线程应用程序从处理线程向 GUI 线程发送消息,我需要两个应用程序——一个服务来执行处理,一个 GUI 应用程序来提供来自服务并向服务发送消息(例如,手动启动扫描)。但我是 Windows 服务的新手,不知道这是如何完成的。
也有可能我完全不在基地,服务根本不是我想要的。
任何帮助/想法/建议将不胜感激!谢谢。
【问题讨论】:
标签: c++ windows user-interface winapi service