15,474
社区成员




#include<windows.h>
#include<stdio.h>
#include <pdh.h>
#include <Tlhelp32.h>
int main()
{
// Find the specified Process
HANDLE hProcess = NULL;
PROCESSENTRY32 pe = {sizeof(pe)};
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
BOOL suc = Process32First(hSnapShot, &pe);
while(suc)
{
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, false, pe.th32ProcessID);
if(hProcess != NULL)
{
if(strcmp(pe.szExeFile, "1080.exe") == 0)
{
break;
}
}
CloseHandle(hProcess);
suc = Process32Next(hSnapShot, &pe);
}
// Got it
if(suc)
{
SYSTEMTIME LastSysTime, CurSysTime;
ULARGE_INTEGER ulLastSysTime, ulCurSysTime;
ULARGE_INTEGER ulStart, ulEnd,
ulLastProcKernelTime, ulLastProcUserTime,
ulCurProcKernelTime, ulCurProcUserTime;
ULARGE_INTEGER ulKernelTimeUsed ,ulUserTimeUsed, ulSysTimePast;
int iCpuUsage = 0;
GetSystemTime(&LastSysTime);
GetProcessTimes(hProcess, (LPFILETIME)&ulStart, (PFILETIME)&ulEnd,
(PFILETIME)&ulLastProcKernelTime, (PFILETIME)&ulLastProcUserTime);
while(1)
{
Sleep(1000);
GetProcessTimes(hProcess, (PFILETIME)&ulStart, (PFILETIME)&ulEnd,
(PFILETIME)&ulCurProcKernelTime, (PFILETIME)&ulCurProcUserTime);
GetSystemTime(&CurSysTime);
SystemTimeToFileTime(&LastSysTime, (PFILETIME)&ulLastSysTime);
SystemTimeToFileTime(&CurSysTime, (PFILETIME)&ulCurSysTime);
ulKernelTimeUsed.QuadPart = ulCurProcKernelTime.QuadPart - ulLastProcKernelTime.QuadPart;
ulUserTimeUsed.QuadPart = ulCurProcUserTime.QuadPart - ulLastProcUserTime.QuadPart;
ulSysTimePast.QuadPart = ulCurSysTime.QuadPart - ulLastSysTime.QuadPart;
iCpuUsage = (ulKernelTimeUsed.QuadPart + ulUserTimeUsed.QuadPart)*100 / ulSysTimePast.QuadPart;
printf("The Process use %3d%%\n", iCpuUsage);
LastSysTime = CurSysTime;
ulLastProcKernelTime = ulCurProcKernelTime;
ulLastProcUserTime = ulCurProcUserTime;
}
}
return 0;
}
#include<windows.h>
#include<stdio.h>
#include <pdh.h>
#include <Tlhelp32.h>
int main()
{
// Find the specified Process
HANDLE hProcess = NULL;
PROCESSENTRY32 pe = {sizeof(pe)};
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
BOOL suc = Process32First(hSnapShot, &pe);
while(suc)
{
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, false, pe.th32ProcessID);
if(hProcess != NULL)
{
if(strcmp(pe.szExeFile, "1080.exe") == 0)
{
break;
}
}
CloseHandle(hProcess);
suc = Process32Next(hSnapShot, &pe);
}
// Got it
if(suc)
{
ULARGE_INTEGER ulLastSysTime, ulCurSysTime;
ULARGE_INTEGER ulStart, ulEnd,
ulLastProcKernelTime, ulLastProcUserTime,
ulCurProcKernelTime, ulCurProcUserTime;
ULARGE_INTEGER ulKernelTimeUsed ,ulUserTimeUsed, ulSysTimePast;
SYSTEM_INFO si = {0};
int iCpuUsage = 0;
GetSystemInfo(&si);
GetSystemTimeAsFileTime((PFILETIME)&ulLastSysTime);
GetProcessTimes(hProcess, (PFILETIME)&ulStart, (PFILETIME)&ulEnd,
(PFILETIME)&ulLastProcKernelTime, (PFILETIME)&ulLastProcUserTime);
while(1)
{
Sleep(1000);
GetProcessTimes(hProcess, (PFILETIME)&ulStart, (PFILETIME)&ulEnd,
(PFILETIME)&ulCurProcKernelTime, (PFILETIME)&ulCurProcUserTime);
GetSystemTimeAsFileTime((PFILETIME)&ulCurSysTime);
ulKernelTimeUsed.QuadPart = ulCurProcKernelTime.QuadPart - ulLastProcKernelTime.QuadPart;
ulUserTimeUsed.QuadPart = ulCurProcUserTime.QuadPart - ulLastProcUserTime.QuadPart;
ulSysTimePast.QuadPart = ulCurSysTime.QuadPart - ulLastSysTime.QuadPart;
iCpuUsage = (ulKernelTimeUsed.QuadPart + ulUserTimeUsed.QuadPart)*100 /
(si.dwNumberOfProcessors*ulSysTimePast.QuadPart);
printf("The Process use %3d%%\n", iCpuUsage);
ulLastSysTime = ulCurSysTime;
ulLastProcKernelTime = ulCurProcKernelTime;
ulLastProcUserTime = ulCurProcUserTime;
}
}
return 0;
}