当前进程和线程遍历统计,写好了。
#include
#include
#include
#include
#include
#include
BOOL GetProcess()
{
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //建立进程快照
if (INVALID_HANDLE_VALUE == hProcess)
{
printf("获取进程信息失败!!!\n");
return FALSE;
}
//成功获取进程信息
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
BOOL moreProc = Process32First(hProcess, &pe32);
while (moreProc) //枚举所有进程
{
_tprintf(_T("进程名称:%s 线程个数:%d\n"), pe32.szExeFile,pe32.cntThreads);
moreProc = Process32Next(hProcess, &pe32);
}
CloseHandle(hProcess); //释放进程快照
return TRUE;
}
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "");
GetProcess();
//system("pause");
return 0;
}
没啥特别神秘的。
定义一个公共整形变量,加上原子锁。
启动一个线程就加1;
结束一个线程就减1