한 걸음씩..

[ Windows ] 서비스 검색 & 상태 변경 본문

프로그래밍

[ Windows ] 서비스 검색 & 상태 변경

반엘 2014. 7. 11. 13:00


      서비스 검색

SERVICE_STATUS Status;

SC_HANDLE hSCM = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );

SC_HANDLE hService = OpenService( hSCM, _T("검색할 서비스 명"), SC_MANAGER_ALL_ACCESS );

//현재 서비스의 상태를 알아온다

QueryServiceStatus( hService, &Status );


CloseServiceHandle(hService);

CloseServiceHandle(hSCM);


      서비스 수정

SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

SC_HANDLE hService = OpenService(hSCM, _T("수정할 서비스 명"), SC_MANAGER_ALL_ACCESS );


SERVICE_STATUS ss;


// 현재 동작중인 Service Stop

if(!ControlService(hService, SERVICE_CONTROL_STOP, &ss))

DWORD dwError = GetLastError();


// 서비스 상태 사용 안함으로 수정

if(!ChangeServiceConfig( hService, SERVICE_NO_CHANGE, SERVICE_DISABLED, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, NULL, NULL, NULL))

DWORD dwError = GetLastError();


CloseServiceHandle(hService);

CloseServiceHandle(hSCM);