如何在 C++/QT 中创建 Windows 服务?

Posted

技术标签:

【中文标题】如何在 C++/QT 中创建 Windows 服务?【英文标题】:How to create a Windows Service in C++/QT? 【发布时间】:2013-07-04 21:58:39 【问题描述】:

我想创建一个简单地记录屏幕并将记录的文件发送到服务器的 Windows 服务。但每当我在 Google 中搜索 Windows 服务创建时,我总是会得到 .NET 结果。除了 .NET,我如何才能在其他任何东西上提供简单的服务?我会弄清楚其余的。我更喜欢 Qt 或 C++,但我找不到适合他们的任何东西。

【问题讨论】:

"Anything but" 涵盖了太多内容。选择你的毒药,然后从那里出发。 简单记录一下屏幕就复杂了。 这个完整的 MSDN 示例看起来非 .NETish:msdn.microsoft.com/en-us/library/windows/desktop/… 在windows中让服务与桌面交互并不简单。切换用户、远程登录、终端服务…… @KubaOber:服务在会话 0 中运行。它们无法与交互式会话进行交互。 Qt 在这里没有帮助,这根本不会像这样工作。您需要在交互式会话中运行的客户端应用程序来读取其桌面。但是,应用程序可以将其窗口标记为软件无法读取。 Qt 对此也没有帮助。 【参考方案1】:

在Qt Solutions Archive 中,您可以找到包含示例的 QtService 项目。

QtService 组件对于开发 Windows 服务很有用 和 Unix 守护进程。

该组件不再维护,但它应该仍然可以工作。许可证是 BSD-3-Clause。

【讨论】:

感谢您的提示。我更新了指向新 Github 位置的链接。【参考方案2】:

我使用了本教程 https://www.youtube.com/watch?v=qDH7zWYaScA 中的解决方案,并且在 Windows 7 和 Windows 10 上运行良好。我使用了 QtService。

您必须包含在 .pro 文件中:

include(..\qt-solutions-master\qtservice\src\qtservice.pri)

【讨论】:

以上是关于如何在 C++/QT 中创建 Windows 服务?的主要内容,如果未能解决你的问题,请参考以下文章

在提供 JSON 数据的 C++/Qt(充当服务器)中创建简单的 WebService

如何在 Qt 中创建类似 Textmate 的侧面板

在嵌入式 linux 平台上运行使用 QT 在 windows 中创建的应用程序

在 qt 中创建一个带有图像形状的窗口

如何在 Python 中创建 Windows 服务?

如何在 C 语言的 windows 的 %appdata% 路径中创建目录并创建文件