4个函数的应用.
1.
HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, // DWORD th32ProcessID //
);
2.
BOOL WINAPI Process32First( HANDLE hSnapshot, LPPROCESSENTRY32 lppe
);
3
BOOL WINAPI Process32Next( HANDLE hSnapshot, LPPROCESSENTRY32 lppe
);
4.
BOOL CloseHandle( HANDLE hObject // handle to object );
代码如下:
#include<stdio.h> #include <windows.h> #include <tlhelp32.h>int main() { char szBuf[256]={0}; int nCount = 0; PROCESSENTRY32 pe32={0}; pe32.dwSize = sizeof(PROCESSENTRY32); HANDLE hProcessSnap = INVALID_HANDLE_VALUE; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS //1212 ,0); if(hProcessSnap==INVALID_HANDLE_VALUE) return 0; printf("Process Name\t\t\tProcess ID\tThread Numbers\n"); BOOL bRet = Process32First(hProcessSnap,&pe32); if(bRet) { do { nCount++; printf("%-32s",pe32.szExeFile); printf("%-16d",pe32.th32ProcessID); printf("%d\n",pe32.cntThreads); }while(Process32Next(hProcessSnap,&pe32)); } CloseHandle(hProcessSnap); printf("Total Numbers :%-8d\n",nCount); return 0;}