
win32_stop_service 함수를 사용하여 서비스를 정지시키기 위해서는 서비스 이름을 정확하게 지정해야 합니다. 서비스 이름은 다음 형식으로 지정해야 합니다.
* 서비스 이름은 1에서 256자 사이의 문자열이어야 합니다.
* 서비스 이름은 공백 문자를 포함할 수 없습니다.
* 서비스 이름은 특수 문자를 포함할 수 없습니다.
서비스 이름을 지정할 때, 서비스 이름이 정확하게 맞는지 확인하는 방법은 다음과 같습니다.
* 서비스 이름을 지정한 후, 서비스 이름을 확인하는 API인 OpenService 함수를 사용하여 서비스 이름을 확인할 수 있습니다.
* 서비스 이름을 지정한 후, 서비스 이름을 확인하는 API인 QueryServiceStatus 함수를 사용하여 서비스 이름을 확인할 수 있습니다.
예를 들어, 서비스 이름을 "MyService"로 지정하여 서비스를 정지시키는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
#include
int main() {
// 서비스 이름을 지정합니다.
LPCTSTR serviceName = TEXT("MyService");
// 서비스 이름을 확인합니다.
HANDLE hService = OpenService(NULL, serviceName, SERVICE_QUERY_STATUS);
if (hService == NULL) {
// 서비스 이름이 정확하지 않은 경우
return 1;
}
// 서비스를 정지시킵니다.
if (!ControlService(hService, SERVICE_CONTROL_STOP, 0)) {
// 서비스 정지 실패
return 1;
}
// 서비스 이름을 확인합니다.
if (QueryServiceStatus(hService, &dwServiceStatus)) {
// 서비스 정지 성공
return 0;
} else {
// 서비스 정지 실패
return 1;
}
}
win32_stop_service 함수는 서비스를 정지시키는 함수가 아닙니다. 서비스를 정지시키는 함수는 ControlService 함수를 사용하여 서비스를 정지시키는 함수입니다.
win32_stop_service 함수의 반환값은 없습니다. ControlService 함수의 반환값을 사용하여 서비스 정지 성공 여부를 확인할 수 있습니다.
예를 들어, 서비스가 정지되지 않았을 때, 어떻게 처리해야 하는지 알려드리겠습니다.
#hostingforum.kr
cpp
#include
int main() {
// 서비스 이름을 지정합니다.
LPCTSTR serviceName = TEXT("MyService");
// 서비스 이름을 확인합니다.
HANDLE hService = OpenService(NULL, serviceName, SERVICE_QUERY_STATUS);
if (hService == NULL) {
// 서비스 이름이 정확하지 않은 경우
return 1;
}
// 서비스를 정지시킵니다.
if (!ControlService(hService, SERVICE_CONTROL_STOP, 0)) {
// 서비스 정지 실패
return 1;
}
// 서비스 이름을 확인합니다.
if (QueryServiceStatus(hService, &dwServiceStatus)) {
// 서비스 정지 성공
return 0;
} else {
// 서비스 정지 실패
return 1;
}
}
이 예제에서, 서비스가 정지되지 않았을 때, 서비스 이름을 확인하는 API인 QueryServiceStatus 함수를 사용하여 서비스 이름을 확인할 수 있습니다. 서비스 이름이 정확하지 않은 경우, 서비스 이름을 다시 확인하여 서비스 이름을 정확하게 지정할 수 있습니다.
2025-05-26 11:14