커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
635
1,278
3,878
3,774,476
  현재접속자 : 41 (회원 0)






배너 신청 문의

 
작성일 : 16-01-15 10:30
[QT/Win32] Qt에서 윈도우 서비스 이용하기, Qt Windows Service
 글쓴이 : starbig
조회 : 4,816   추천 : 0  
   http://www.podovat.com/?p=548 [849]

이 글은 제가 podovat.com의 blog 올린글 ( http://www.podovat.com/?p=548 )에서 퍼온것입니다.

QtService lib를 이용하여 윈도우 서비스를 사용하는 방법을 적어볼가 합니다.


1. qtservice lib 다운


일단 서비스를 사용하기 위해 필요한 lib를 받으셔야합니다.

(GitHub - https://github.com/qtproject/qt-solutions )


2. 프로젝트 생성 , 파일 추가


프로젝트를 콘솔로 생성 ( 프로젝트명: TestService)

main.cpp

#include <QCoreApplication>

int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 
 return a.exec();
}
받으신 파일 중 qtservice를 추가하시고 서비스에 쓰일 Start, Stop, Pause, Resume 기능을 추가해보도록하겠습니다.

 

프로젝트에 .h , .cpp 파일을 추가해줍니다. (파일명은 TestQtService 로 하겠습니다.)

- TestQtService.h

#ifndef TESTQTSERVICE_H
#define TESTQTSERVICE_H
 
#include <QObject>

class TestQtService : public QObject
{
 Q_OBJECT
public:
 explicit TestQtService(QObject *parent = 0);
 ~TestQtService();
 
signals:
 
public slots:
};
 
#endif // TESTQTSERVICE_H


- TestQtService.cpp

#include "testqtservice.h"

TestQtService::TestQtService(QObject *parent) : QObject(parent)
{
 
}
 
TestQtService::~TestQtService()
{
 
}


3. 서비스 기능 추가

- TestQtService.h

#ifndef TESTQTSERVICE_H
#define TESTQTSERVICE_H
 
#include "qtservice.h"
#include <QCoreApplication>
 
class TestQtService : public QtService<QCoreApplication>
{
 Q_OBJECT
public:
 explicit TestQtService(int argc, char **argv);
 ~TestQtService();
 
protected:
 void start();
 void stop();
 void pause();
 void resume();
};
 
#endif // TESTQTSERVICE_H


- TestQtService.cpp

#include "testqtservice.h"
#include "qtservice.h"
#include <QDebug>

TestQtService::TestQtService(int argc, char **argv) :
 QtService<QCoreApplication>(argc, argv, "Qt Test Service")
{
 try
 {
 qDebug() << "TestQtService::TestQtService argc" << argc;
 setServiceDe&#115;&#99;ription("This is Qt Test Service");
 setServiceFlags(QtServiceBase::CanBeSuspended);
 setStartupType(QtServiceController::AutoStartup);
 }
 catch (...)
 {
 qCritical() << "TestQtService::TestQtService error.";
 }
}
 
TestQtService::~TestQtService()
{
 
}
 
void TestQtService::start()
{
 qDebug() << "TestQtService::start";
}
 
void TestQtService::stop()
{
 qDebug() << "TestQtService::stop";
}
 
void TestQtService::pause()
{
 qDebug() << "TestQtService::pause";
}
 
void TestQtService::resume()
{
 qDebug() << "TestQtService::resume";
}



- main.cpp

#include "testqtservice.h"

int main(int argc, char *argv[])
{
 TestQtService service(argc, argv);
 
 return service.exec();
}


>> 빌드

 


4. 실행


커맨드 창을 관리자권한으로 실행하고 실행파일이 있는 위치로 이동후 아래와 같이 적어줍니다.

cmd >> 관리자 권한 실행 >> exe파일이 생성된 위치 이동 >> TestService.exe -i 실행

(혹시 dll파일이 없어 실행이 안될시 필요한 dll 파일들을 옮겨줍니다.)

 

install이 되었다는 메시지가 떴다면

윈도우 서비스에서 확인해봅니다.




http://www.podovat.com/wp-content/uploads/2016/01/%EC%BA%A1%EC%B2%98.png

Qt Test Service가 추가되었습니다.



시작했을시 잘 동작되는지 확인하시려면

qtservice.pro 파일에

#DEFINES += QTSERVICE_DEBUG

추가해주면

 

C: 에 service-debuglog.txt 파일이 생성됩니다.
19:14:58.420 [3856] — DEBUG LOG OPENED —
19:14:58.420 [3856] DEBUG: TestQtService::TestQtService argc 1
19:14:58.483 [3856] DEBUG: TestQtService::start

 

잘 실행되었네요!

 

이상 qt를 이용한 윈도우 서비스 추가 실행 이었습니다.
podo - starbig - www.podovat.com



 
 

Total 201
번호 제   목 글쓴이 날짜 조회 추천
201 [QT/Win32] MFC에서 Qt 사용하기 팁. (3) devilqoo 09-10 1608 0
200 [QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나 (1) 구름님 12-03 3919 0
199 [QT/X11] QWT for qt android (1) 구름님 03-07 5552 1
198 [QT/Win32] QtSingleApplication 이용하기 (1) starbig 01-18 5477 0
197 [QT/Win32] Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사… starbig 01-15 6046 0
196 [QT/Win32] Qt에서 윈도우 서비스 이용하기, Qt Windows Servic starbig 01-15 4817 0
195 [QT/Embedded] QTcpSocket사용 시 플러그 뽑힘 증상 체크 방법 요원009 11-13 8771 0
194 [QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기 tmdwn 05-18 5331 0
193 [QT/Embedded] Qt update함수/repaint함수 사용법좀 알려주세여.. (1) 잉농 05-14 5100 0
192 [QT/Embedded] C++ Exception을 활용한 런타임 콜스택 정보 얻기 (1) korone 04-01 5479 0
191 [QT/Embedded] Qt 5.4.1 raspberry Pi 프로그램 개발하기 (5) 구름님 03-31 18144 1
190 [QT/Win32] Qt 다국어 처리 (2) korone 03-17 10605 0
189 [QT/Win32] signal to signal devilqoo 02-13 4848 0
188 [QT/Win32] Qt x64 바이너리 제공 사이트 (1) 인라이… 02-12 4753 1
187 [QT/Embedded] 우분투 Qt5 크로스 컴파일 (14/11/26 2차 수정) (9) 김아무… 11-12 13424 0
186 [QT/Embedded] Qt 5.3.2에서 Mouse Double Click시 이벤트 문제 (2) korone 11-11 4883 0
185 [QT/Embedded] QtWinExtras korone 11-11 4846 0
184 [QT/Win32] Qt 코딩 스타일 (편집 편) (4) devilqoo 10-22 8764 0
183 [QT/Win32] Qt와 C++11 (2) devilqoo 10-12 8824 1
182 [QT/Win32] Qt 에서의 이벤트 처리 (5) devilqoo 10-09 8514 0
181 [QT/Win32] QList와 QVector의 비교. (2) devilqoo 10-02 6214 0
180 [QT/Win32] Qt에서 사용되는 컨테이너들을 정리해 보았습… (4) devilqoo 10-01 7045 0
179 [QT/X11] qmake DEFINES 변수에 공백문자가 포함된 값을 설… (1) 별님 09-25 4584 0
178 [QT/Win32] 데이터 압축 관련 qCompress(), qUncompress() (9) 구름님 09-16 5034 0
177 [QT/Win32] QML 로 One-Source Multi-Platform (iOS, Android) 실행 tmdwn 09-03 6496 0
176 [QT/Win32] QML 로 iOS Application 제작하기 tmdwn 09-02 6479 0
175 [QT/Win32] QML 로 Android Application 제작하기 (4) tmdwn 09-02 6887 2
174 [QT/X11] qt에서 메모리 조작하기. (2) 나무나… 07-25 6970 0
173 [QT/Win32] Q_DECLARE_FLAGS 매크로 (2) 구름님 07-11 5690 2
172 [QT/Win32] Q_PROPERTY 매크로 (6) 구름님 07-09 7666 2
 1  2  3  4  5  6  7  


About korone.net | Copyright 2003 korone.net. All rights reserved.