2011-03-15 5 views
0

WMI를 사용하여 httpd.exe 서비스를 쿼리하여 실행 중이거나 중지되었는지 확인할 수있었습니다.서비스를 확인하는 WMI 쿼리가 작동하는지 여부

hres = pSvc->ExecQuery(
     bstr_t("WQL"), 
     bstr_t("SELECT * FROM Win32_Process Where Name='httpd.exe'"), 
     WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
     NULL, 
     &pEnumerator); 

가 지금은 서비스가 사용하는 CPU의 양을 조회하고 싶습니다 : 여기에 내가 함께 연주하고있는 코드입니다. 실행중인 서비스가 업무를 수행하고 있는지 여부를 알고 싶습니다. 이 작업을 수행 할 수 있습니까? 올바른 질문을하고 있습니까? 조언이 필요합니다.

+0

특정 서비스의 사용량을 확인할 수있는 쿼리가 있습니까? – karikari

답변

0

Win32_Process을 사용하면 특정 시간 동안 각 CPU 평균을 계산할 수있는 UserModeTimeKernelModeTime (100 나노초 단위로 표시됨)을 얻을 수 있습니다.

두 개의 Win32_Process 정보를 TimeInterval (100 나노초 단위로 표시)으로 구분한다고 가정합니다. 당신이 시작 부분에서 속도를하려면

UserTimeRate = ((UserModeTime2 - UserModeTime1)/TimeInterval) * 100; 

KernelTimeRate =((KernelModeTime2 - KernelModeTime1)/TimeInterval) * 100; 

CPU = (((UserModeTime2 - UserModeTime1) + (KernelModeTime2 - KernelModeTime1))/TimeInterval) * 100; 

, 당신은 지금 CreationDate에에서 TimeInterval을 계산할 수 있습니다.

관련 문제