////////////////////////////////////////////////////////////////////////////////
//
// 关键点
//
// PROCESSENTRY32 pe32;
// pe32.dwSize = sizeof(pe32);
// HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//
// BOOL bMore = ::Process32First(hProcessSnap,&pe32); //得到第一个进程
// while(bMore)
// {
// bMore = ::Process32Next(hProcessSnap,&pe32); //得到下一个进程
// }
//
////////////////////////////////////////////////////////////////////////////////
#include "windows.h"
#include "tlhelp32.h"
#include "stdio.h"
#include "conio.h"
int main( int argc , char * argv[] )
{
//记录进程数
int num = 1;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
printf("CreateToolhelp32snapshot调用失败/n");
return -1;
}
printf("************************ 进程查看程序 ************************/n/n");
printf( "%4s%20s%20s/n/n" , "编号" , "进程名称" , "进程号" );
BOOL bMore = ::Process32First(hProcessSnap,&pe32);
while(bMore)
{
printf("%4d" , num );
printf("%20s" , pe32.szExeFile);
printf("%20d/n" , pe32.th32ProcessID);
bMore = ::Process32Next(hProcessSnap,&pe32);
num++;
}
::CloseHandle(hProcessSnap);
getch();
return 0;
}
本文展示了一个使用C++编写的简单程序,该程序利用Windows API函数CreateToolhelp32Snapshot、Process32First和Process32Next来获取并显示当前计算机上运行的所有进程的名称及其对应的进程ID。
2829

被折叠的 条评论
为什么被折叠?



