|
안녕하십니까?? 선배님들..
프로세스를 강제로 start 시키려는 데, 도저히 안되는군요.
여기 올려진 소스를 참고로 작성중인데.. OpenService한 후, 여기서 schService 변수가 null값입니다.
핸들을 가지지 못해서 생기는 문제인 거 같은데요.
혹시나 무엇이 문제인지 아는 선배님들.. 도와주세요..^ ^
sSrvName은 "notepad.exe" 라는 실행파일 명을 가지고 있습니다.
SC_HANDLE schService;
SC_HANDLE schManager;
SERVICE_STATUS ss;
schManager = OpenSCManager(NULL,NULL,/*GENERIC_READ*/SC_MANAGER_ALL_ACCESS);
schService = OpenService(schManager,sSrvName.c_str(), SERVICE_ALL_ACCESS/*SERVICE_START| SERVICE_QUERY_STATUS*/);//AMR_IP_SER.exe//AMR Remote IP Server
//::SetCursor(LoadCursor(NULL,IDC_WAIT));
if (StartService(schService, 0, NULL) == true)
{
QueryServiceStatus(schService, &ss);
while(ss.dwCurrentState != SERVICE_RUNNING)
{
Sleep(ss.dwWaitHint);
QueryServiceStatus(schService, &ss);
}
}
else
{
schService = OpenService(schService, sSrvName.c_str(), SERVICE_CONTROL_INTERROGATE);
ControlService(schService, SERVICE_CONTROL_INTERROGATE, &ss);
if(ss.dwCurrentState==SERVICE_PAUSED)
{
schService = OpenService(schService,sSrvName.c_str(),GENERIC_EXECUTE);
ControlService(schService,SERVICE_CONTROL_CONTINUE,&ss);
}
}
//::SetCursor(LoadCursor(NULL,IDC_ARROW));
CloseServiceHandle(schService);
|