C++——获取进程名和进程ID

转载来自:https://www.cnblogs.com/LCCRNblog/p/4652374.html

#include <iostream>
#include <string>
#include <map>
#include <windows.h>
#include <TlHelp32.h>
using namespace std;

bool traverseProcesses(map<string, int>& _nameID)
{
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);

    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获取进程快照
    if(hProcessSnap == INVALID_HANDLE_VALUE) {
        cout << "CreateToolhelp32Snapshot Error!" << endl;;
        return false;
    }

    BOOL bResult =Process32First(hProcessSnap, &pe32);

    int num(0);

    while(bResult)
    {
        //string name = string(pe32.szExeFile);
        char temp[300];
        WideCharToMultiByte(CP_ACP, 0, pe32.szExeFile, -1, temp, sizeof(temp), NULL, NULL);
        string name = string(temp);
        int id = pe32.th32ProcessID;

        cout << "[" << ++num << "] : " <<"Process Name:"
            << name << "  " << "ProcessID:" << id<< endl;

        _nameID.insert(pair<string, int>(name, id)); //字典存储
        bResult = Process32Next(hProcessSnap,&pe32);
    }

    CloseHandle(hProcessSnap);

    return true;
}

int main()
{
    map<string, int> _nameID;

    if (!traverseProcesses(_nameID)) {
        cout << "Start Process Error!" << endl;
    }

    return 0;
}

C++——获取进程名和进程ID

原文链接: https://www.cnblogs.com/Galesaur-wcy/p/15624200.html

欢迎关注

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

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

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

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

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

(0)
上一篇 2023年2月13日 上午2:44
下一篇 2023年2月13日 上午2:45

相关推荐