C++` 调用 CreateToolhelp32Snapshot 进程快照 取进程PID

C++`进程快照 取进程PID

#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
using namespace std;
#define GAME_NAME "PlantsVsZombies.exe" //植物僵尸嘿嘿
//C++ 各种类型的定义非常麻烦 本就初学小白的我 弄到抓狂 显示
//!!!!!!重要提升新手在用2022vs 项目--属性--(或者 alt+F7) 属性配置 --高级--高级属性--字符集--一点要改成多字节字符集!!!!否则麻烦多多!!!
int GetProcessHandle()
{
	HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (INVALID_HANDLE_VALUE == hSnapshot)
	{
		return NULL;
	}
	PROCESSENTRY32 pe = { 0 }; 
	pe.dwSize = sizeof(pe);
	for (BOOL fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe))
	{
		// pe.szExeFile //返回进程名
		//pe.th32ProcessID//返回进程ID 
		if (strcmp(pe.szExeFile, GAME_NAME) == 0)//对比字符
		{	//关闭句柄
			CloseHandle(hSnapshot);
			return pe.th32ProcessID;
		}
	}
	//关闭句柄
	CloseHandle(hSnapshot);
	return NULL;
}

int main()
{
	int PID = GetProcessHandle();
	printf("进程PID { %d } \n", PID);
	return 0;
}

在这里插入图片描述
在这里插入图片描述




版权声明:本文为wangyunhe5120原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。