C++ 获取进程 ID:按进程名查找
在 C++ 中,可以使用 Windows API 函数来按进程名查找进程 ID。以下是一个示例代码:
#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
DWORD GetProcessIdByName(const std::string& processName)
{
PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (Process32First(snapshot, &entry) == TRUE)
{
while (Process32Next(snapshot, &entry) == TRUE)
{
if (strcmp(entry.szExeFile, processName.c_str()) == 0)
{
CloseHandle(snapshot);
return entry.th32ProcessID;
}
}
}
CloseHandle(snapshot);
return 0;
}
int main()
{
std::string processName = 'notepad.exe';
DWORD processId = GetProcessIdByName(processName);
if (processId != 0)
{
std::cout << 'Process ID of ' << processName << ' is ' << processId << std::endl;
}
else
{
std::cout << 'Process not found' << std::endl;
}
return 0;
}
在上面的示例中,GetProcessIdByName 函数接受一个进程名作为参数,并使用 CreateToolhelp32Snapshot 函数和 Process32First、Process32Next 函数来遍历系统中的进程。当找到与给定进程名匹配的进程时,返回该进程的 ID。如果未找到匹配的进程,返回 0。
在 main 函数中,我们可以调用 GetProcessIdByName 函数来查找指定进程名的进程 ID,并输出结果。请注意,这个示例代码只适用于 Windows 系统。
原文地址: https://www.cveoy.top/t/topic/peIz 著作权归作者所有。请勿转载和采集!