在 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 函数和 Process32FirstProcess32Next 函数来遍历系统中的进程。当找到与给定进程名匹配的进程时,返回该进程的 ID。如果未找到匹配的进程,返回 0。

main 函数中,我们可以调用 GetProcessIdByName 函数来查找指定进程名的进程 ID,并输出结果。请注意,这个示例代码只适用于 Windows 系统。

C++ 获取进程 ID:按进程名查找

原文地址: https://www.cveoy.top/t/topic/peIz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录