C++ 根据进程名找到对应Pid

// FileName: FindProcessPid.cpp

// Function: Find Pid by ProcessName

#include <string.h>
#include <stdio.h>
#include <Windows.h>
#include <tlhelp32.h>    //CreateToolhelp32Snapshot


#define ArraySize(ptr)    (sizeof(ptr) / sizeof(ptr[0]))


BOOL FindProcessPid(LPCSTR ProcessName, DWORD& dwPid);


int main()
{
    LPCSTR ListApps[]{
        "QQ.exe", "chrome.exe"
    };
    // StopMyService();
    DWORD dwPid = 0;

    for (int i = 0; i < ArraySize(ListApps); i++)
    {
        if (FindProcessPid(ListApps[i], dwPid))
        {
            printf("[%s] [%d]n", ListApps[i], dwPid);
        }
        else
        {
            printf("[%s] [Not Found]n", ListApps[i]);
        }
    }
    return 0;
}

BOOL FindProcessPid(LPCSTR ProcessName, DWORD& dwPid)
{
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;

    // Take a snapshot of all processes in the system.
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        return(FALSE);
    }

    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (!Process32First(hProcessSnap, &pe32))
    {
        CloseHandle(hProcessSnap);          // clean the snapshot object
        return(FALSE);
    }

    BOOL    bRet = FALSE;
    do
    {
        if (!strcmp(ProcessName, pe32.szExeFile))
        {
            dwPid = pe32.th32ProcessID;
            bRet = TRUE;
            break;
        }

    } while (Process32Next(hProcessSnap, &pe32));

    CloseHandle(hProcessSnap);
    return bRet;
}

运行效果:

C++ 根据进程名找到对应Pid
原文链接: https://www.cnblogs.com/albertofwb/p/6231102.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/246626

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午1:38
下一篇 2023年2月14日 上午1:40

相关推荐