標籤:style blog class code c java
1 #include "windows.h" 2 #include "tlhelp32.h" 3 #include "iostream" 4 using namespace std; 5 6 #pragma comment(lib,"kernel32.lib") 7 8 DWORD GetKernelModePercentage(const FILETIME& ftKernel, 9 const FILETIME& ftUser10 ){11 ULONGLONG qwKernel=(((ULONGLONG)ftKernel.dwHighDateTime)<<32)+ftKernel.dwLowDateTime;12 ULONGLONG qwUser=(((ULONGLONG)ftUser.dwHighDateTime)<<32)+ftUser.dwLowDateTime;13 ULONGLONG qwTotal=qwKernel+qwUser;14 DWORD dwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);15 return (dwPct);16 17 18 }19 20 void main(){21 HANDLE hSnapshot=CreateToolhelp32Snapshot(22 TH32CS_SNAPPROCESS,23 024 );25 26 PROCESSENTRY32 pe;27 28 ZeroMemory(&pe,sizeof(pe));29 pe.dwSize=sizeof(pe);30 31 BOOL bMore=Process32First(hSnapshot,&pe);32 33 while(bMore){34 HANDLE hProcess=OpenProcess(35 PROCESS_QUERY_INFORMATION,36 FALSE,37 pe.th32ProcessID38 );39 40 if(hProcess!=NULL){41 FILETIME ftCreation,ftKernelMode,ftUserMode,ftExit;42 GetProcessTimes(43 hProcess,44 &ftCreation,45 &ftExit,46 &ftKernelMode,47 &ftUserMode );48 49 DWORD dwPctKernel=GetKernelModePercentage(50 ftKernelMode,51 ftUserMode52 );53 54 cout<<"process ID:"<<pe.th32ProcessID55 <<",EXE file:"<<pe.szExeFile56 <<",% in Kernel mode:"<<dwPctKernel<<endl;57 58 CloseHandle(hProcess);59 }60 bMore=Process32Next(hSnapshot,&pe);61 }62 63 64 getchar();65 }