使用QtService实现Qt后台服务程序

Posted 小哈龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用QtService实现Qt后台服务程序相关的知识,希望对你有一定的参考价值。

一.下载qtservice

地址:https://github.com/qtproject/qt-solutions
将源码文件引入到自己的工程,有部分是linux平台的文件,可以不添加,只添加winodws部分的
 

二.示例代码

JfService.h:

#pragma once

#include <QObject>
#include "../qtservice/src/qtservice.h"
class JfService : public QtService<QCoreApplication>

public:
	JfService(int argc, char **argv);
	~JfService()override;
protected:
	void start()override;
	void stop()override;
	void pause()override 
	void resume()override 

private:
;

JfService.cpp:

#include "JfService.h"


JfService::JfService(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, "QtServiceDemo")

	setServiceDescription("QtService Demo");
	setServiceFlags(QtServiceBase::CanBeSuspended);


JfService::~JfService()



void JfService::start()

	FILE *fp = fopen("D:\\\\111.txt", "w");
	fprintf(fp, "111111111");


void JfService::stop()



使用:

#include "JfService.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])

	/*QApplication a(argc, argv);
	LibTest w;
	w.show();
	return a.exec();*/

	JfService service(argc, argv);
	return service.exec();

三.bat脚本服务操作 

服务操作指令可以写进batch脚本,然后以管理员身份运行。
比如 你的 MyService.exe 在C盘根目录

1)启动服务 start.bat文件:

@echo.服务启动…
@echo off
@cd C:\\
@sc create MyServiceName binPath= “C:\\MyService.exe”
@sc config MyServiceName start= AUTO
@net start MyServiceName
@echo off
@echo.启动完毕!
@pause

2)卸载服务 stop.bat文件:
 

@echo.uninstall service…
@echo off
@net stop MyServiceName
@echo.delete service…
@sc delete MyServiceName
@echo off
@echo.delete success!
@pause



参考文章:Qt实现Windows服务程序_-MCQ-的博客-CSDN博客_qt windows服务

以上是关于使用QtService实现Qt后台服务程序的主要内容,如果未能解决你的问题,请参考以下文章

使用QtService实现Qt后台服务程序

用QT创建WINDOWS服务程序

QtService 应用程序在作为服务运行时无法连接到系统总线

在 ubuntu 上安装 Qtservice

在 QtService 上使用 QLocalServer:如何为 QLocalServer 创建的命名管道设置安全属性?

windows service后台服务怎样用qt实现