
	                	                 
윈도우 서비스 관리자에서 서비스 이름을 얻을 수 있지만, 프로그램에서 자동으로 서비스 이름을 얻을 수 있는 방법이 있습니다.
1. SC_MANAGER_CONNECT 권한으로 서비스 관리자를 열어 서비스 목록을 가져옵니다.
2. SC_MANAGER_ENUMERATE_SERVICE 권한으로 서비스 목록에서 서비스 이름을 가져옵니다.
3. win32_service_openSCManager 함수를 사용하여 서비스 관리자를 열고, win32_service_enum_services 함수를 사용하여 서비스 목록을 가져옵니다.
4. win32_service_get_service_display_name 함수를 사용하여 서비스 이름을 가져옵니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
python
import win32serviceutil
import win32service
def get_service_name(service_name):
    try:
        service_handle = win32serviceutil.OpenService(None, service_name, win32service.SERVICE_QUERY_STATUS)
        if service_handle:
            return service_name
        else:
            return None
    except Exception as e:
        print(f"Error: {e}")
        return None
def get_services():
    services = []
    try:
        sc_manager_handle = win32serviceutil.OpenSCManager(None, None, win32service.SERVICE_MANAGER_CONNECT)
        if sc_manager_handle:
            services = win32serviceutil.EnumServicesStatus(sc_manager_handle)
            win32serviceutil.CloseServiceHandle(sc_manager_handle)
        return services
    except Exception as e:
        print(f"Error: {e}")
        return []
def main():
    services = get_services()
    for service in services:
        service_name = get_service_name(service[0])
        if service_name:
            print(f"Service Name: {service_name}")
if __name__ == "__main__":
    main()
이 예제 코드는 서비스 관리자에서 서비스 이름을 자동으로 가져오는 방법을 보여줍니다.
2025-06-13 22:05