如何使用Qt安装Windows服务?

Nic*_*ton 5 qt windows-services

我们有一个使用WinAPI的现有C++应用程序(我们称之为"SvcApp").我们有另一个名为"MgrApp"的C++ WinAPI应用程序,它安装并启动"SvcApp"作为Windows服务.

但是,我们想用Qt应用程序替换"SvcApp".我可能会被误导,但似乎无法使用<windows.h>Qt应用程序,因此我似乎无法复制并粘贴"MgrApp"中的所有现有代码......或者我可以吗?

总而言之,我们需要从Qt应用程序中执行以下操作:

  • 启动/停止Windows服务
  • 安装/卸载Windows服务

Jim*_*iel 2

您绝对可以在 Qt 应用程序中使用 Windows API(包括 windows.h)。Qt 在幕后使用 Windows API。处理跨平台 Qt 应用程序的正常方式是使用 #ifdef 块。为此,Qt 提供了 Q_OS_WIN32 和 Q_WS_MAC 等宏。查看Qt源代码,你会发现到处都使用了这个方法。

编辑:您可能还想研究使用命令行实用程序来安装/卸载和启动/停止 Windows 服务。这样你就可以使用 QProcess 来调用它,而不必深入研究 WinAPI(这总是很好)