
win32_set_service_pause_resume_state 함수의 첫 번째 매개 변수는 서비스 이름이 아닌 서비스 제어 매니저의 이름을 받는 것은 아닙니다.
서비스 이름을 직접 입력해야 합니다.
이 함수를 사용할 때 유의해야 하는 점은 서비스 이름을 정확하게 입력해야 하며, 서비스가 이미 시작된 상태에서 중단하거나 중단된 상태에서 시작하려고 할 때는 에러가 발생할 수 있습니다.
서비스 제어 매니저의 이름을 사용하는 경우는 서비스를 등록할 때 사용하는 서비스 제어 매니저의 이름을 사용하는 것입니다.
예를 들어, 서비스를 등록할 때 서비스 제어 매니저의 이름을 "MyServiceCtrlManager"로 설정했다면, 이 이름을 사용하여 서비스를 제어할 수 있습니다.
하지만, 일반적으로 서비스 이름을 사용하여 서비스를 제어하는 것이 더 일반적이고 편리합니다.
예를 들어, 서비스 이름을 "MyService"로 설정했다면, 이 이름을 사용하여 서비스를 제어할 수 있습니다.
win32_set_service_pause_resume_state 함수를 사용할 때는 서비스 이름을 정확하게 입력하고, 서비스가 이미 시작된 상태에서 중단하거나 중단된 상태에서 시작하려고 할 때는 에러가 발생할 수 있으므로 주의해야 합니다.
서비스 이름을 직접 입력하고, 서비스가 이미 시작된 상태에서 중단하거나 중단된 상태에서 시작하려고 할 때는 에러를 처리하는 코드를 추가하는 것이 좋습니다.
예를 들어, 서비스 이름을 "MyService"로 설정하고, 서비스가 이미 시작된 상태에서 중단하려고 할 때는 에러를 처리하는 코드를 추가할 수 있습니다.
#hostingforum.kr
c
SC_HANDLE hService;
SC_HANDLE hSCManager;
// 서비스 제어 매니저의 이름을 얻어옵니다.
hSCManager = OpenService(NULL, "MyServiceCtrlManager", SERVICE_QUERY_STATUS);
// 서비스 이름을 얻어옵니다.
hService = OpenService(hSCManager, "MyService", SERVICE_QUERY_STATUS);
// 서비스를 중단합니다.
if (!ControlService(hService, SERVICE_CONTROL_STOP, 0))
{
// 에러를 처리합니다.
printf("서비스 중단에 실패했습니다.n");
}
else
{
printf("서비스 중단에 성공했습니다.n");
}
// 서비스 제어 매니저와 서비스를 닫습니다.
CloseServiceHandle(hSCManager);
CloseServiceHandle(hService);
2025-06-02 19:51