枚举所有进程及其ID

版权声明:版权归本站站长所有转载请声明 https://blog.csdn.net/qq_40179458/article/details/85028328
 #include<Windows.h>


#include<TlHelp32.h>         //声明快照函数的头文件

#include<stdio.h>

int main(int argc, char*argv[])

{

	system("color 0A");        //设置底色

	PROCESSENTRY32 pe32;      //声明该结构体变量

	//在使用这个结构前,先设置它的大小

	pe32.dwSize = sizeof(pe32);          




	//给系统内的所有进程拍一个快照

	HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  //用于获取系统内指定进程的快照,传递两个参数

	if (hProcessSnap == INVALID_HANDLE_VALUE)

	{

		printf("Create Toolhelp32Snapshot 调用失败! \n");

		return -1;

	}

	//遍历进程快照,轮流显示每个进程的信息

	BOOL bMore = ::Process32First(hProcessSnap, &pe32);

	while (bMore)

	{

		printf("进程名称:%s \n", pe32.szExeFile);

		printf("进程ID号: %u \n\n", pe32.th32ProcessID);




		bMore = ::Process32Next(hProcessSnap, &pe32);

	}

	//清楚snapshot对象

	::CloseHandle(hProcessSnap);

	system("pause");

	return 0;




}

猜你喜欢

转载自blog.csdn.net/qq_40179458/article/details/85028328