문제

C에는 파일 인덱싱이 켜져 있는지 확인하는 데 사용할 수있는 API가 있습니까? 코드에 감사드립니다.

도움이 되었습니까?

해결책

WMI는 C ++의 통증이지만 기본 서비스 API는 매우 깨끗합니다.

SC_HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
if(hSCManager)
{
    SC_HANDLE hService = OpenService(hSCManager, _T("ServiceNameGoesHere"), SERVICE_QUERY_STATUS);
    if(hService)
    {
        // service is installed
        SERVICE_STATUS ServiceStatus;
        if(ServiceQueryStatus(hService, &ServiceStatus))
        {
            // service is running
            // get current state from ServiceStatus.dwCurrentState
        }
        else if(GetLastError() == ERROR_SERVICE_NOT_ACTIVE)
        {
            // service is not running
        }
        else
        {
            // error
        }
        CloseServiceHandle(hService);
        hService = NULL;
    }
    else if(GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST)
    {
        // service is not installed
    }
    else
    {
        // error
    }
    CloseServiceHandle(hSCManager);
    hSCManager = NULL;
}
else
{
    // error
}

다른 팁

WMI는 이것을 제공하고 Win32_Service 클래스를 사용하십시오. 'C'에서이 작업을 수행하는 것은 Fugly입니다. SDK는 C ++ 샘플. 이것은 동등한 C# 코드입니다.

using System;
using System.Management;   // Add reference!!

class Program {
    public static void Main() {
        var searcher = new ManagementObjectSearcher("root\\CIMV2",
            "SELECT * FROM Win32_Service WHERE Name='wsearch'");

        foreach (ManagementObject queryObj in searcher.Get()) {
            Console.WriteLine("State = {0}", queryObj["State"]);
        }
        Console.ReadLine();
    }
}

C. 프로그래밍 언어는 Windows 파일 인덱싱 또는 그 문제에 대한 지식이 없습니다. ISO C 표준은 문자열 처리, 파일 처리 (열기, 닫기 등), 산술 작업 등에 대한 엄격한 API 유사 세트를 지정하고 그들이 수행하는 원시를 지정하고 정의합니다. 이러한 작업은 기본 플랫폼의 비율입니다. 이 API는 모두 언어 사양 자체에 의해 매우 엄격하게 정의됩니다 (현재 참조의 ISO C99 표준 참조).

원하는 API를 얻으려면 외부 (언어) 라이브러리에 의존해야합니다 (파일 인덱싱이 켜져 있는지 또는 꺼져 있는지 확인하기 위해 API). 따라서 알고 싶은 것은 a)이 라이브러리가 무엇인지 b)이 라이브러리에서 C 프로그램에서 전화하기 위해이 라이브러리에서 사용할 API와 c)이 라이브러리를 다른 것들 중에서도이 라이브러리를 응용 프로그램에 연결하는 방법.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top