地址:https://github.com/qtproject/qt-solutions
将源码文件引入到自己的工程,有部分是linux平台的文件,可以不添加,只添加winodws部分的
JfService.h:
- #pragma once
-
- #include
- #include "../qtservice/src/qtservice.h"
- class JfService : public QtService
- {
- 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
(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
-
- int main(int argc, char *argv[])
- {
- /*QApplication a(argc, argv);
- LibTest w;
- w.show();
- return a.exec();*/
-
- JfService service(argc, argv);
- return service.exec();
- }

服务操作指令可以写进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