介绍
C++通过进程名获取PID
Windows IDE:Visual Studio 2022
Windows
引用库
- <iostream>
- <string>
- <Windows.h>
- <TlHelp32.h>
代码
DWORD GetProcessPidByName(std::wstring processName, int list = 1) { DWORD pid = 0; HANDLE processSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//创建进程快照 if (processSnapshot != INVALID_HANDLE_VALUE) {//判断进程快照是否有效 PROCESSENTRY32 processInfo{}; processInfo.dwSize = sizeof(PROCESSENTRY32); int i = 1; if (Process32First(processSnapshot, &processInfo) == TRUE) {//获取第一个进程信息 do { if (processName.compare(processInfo.szExeFile) == 0 && i == list) {//判断进程名是否找到 pid = processInfo.th32ProcessID; i++; } } while (Process32Next(processSnapshot, &processInfo));//获取下一个进程信息 } } return pid; }