posted by 초식사자 2011.07.04 12:47

-인자로 전달된 서비스명의 윈도우 서비스를 제거한다.

#include <windows.h>

#define BUFSIZE 512

void RemoveService(char* sc_name){
        SC_HANDLE hManager;
        SC_HANDLE hService;
        SERVICE_STATUS sStat;
        char path[BUFSIZE];

        hManager=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);

        hService=OpenService(hManager,sc_name,SERVICE_ALL_ACCESS);

        if(hService){
                //서비스 실행 중지
                ControlService(hService,SERVICE_CONTROL_STOP,&sStat);

                while(QueryServiceStatus(hService,&sStat)){
                        if(sStat.dwCurrentState == SERVICE_STOP_PENDING){
                                Sleep(1000);
                        }else{
                                break;
                        }
                }

                //서비스 제거
                if(sStat.dwCurrentState == SERVICE_STOPPED){
                        DeleteService(hService);
                }

                CloseServiceHandle(hService);
        }

        CloseServiceHandle(hManager);
}


'프로그래밍 > C/C++' 카테고리의 다른 글

레지스트리 삭제하기  (0) 2011.07.04
레지스트리 값 출력하기  (0) 2011.07.04
윈도우 서비스 제거하기  (0) 2011.07.04
파일 탐색하기  (0) 2011.07.04
호스트 IP 주소 얻기  (0) 2011.07.04
파일 다운로드 하기  (0) 2011.07.04

댓글을 달아 주세요