How to get the process name in C++

后端 未结 6 1065
陌清茗
陌清茗 2020-11-29 08:01

How do I get the process name from a PID using C++ in Windows?

6条回答
  •  执笔经年
    2020-11-29 09:02

    Try this function :

    std::wstring GetProcName(DWORD aPid)
    { 
     PROCESSENTRY32 processInfo;
        processInfo.dwSize = sizeof(processInfo);
        HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
        if (processesSnapshot == INVALID_HANDLE_VALUE)
        {
          std::wcout  << "can't get a process snapshot ";
          return 0;
        }
    
        for(BOOL bok =Process32First(processesSnapshot, &processInfo);bok;  bok = Process32Next(processesSnapshot, &processInfo))
        {
            if( aPid == processInfo.th32ProcessID)
            {
                std::wcout << "found running process: " << processInfo.szExeFile;
                CloseHandle(processesSnapshot);
                return processInfo.szExeFile;
            }
    
        }
        std::wcout << "no process with given pid" << aPid;
        CloseHandle(processesSnapshot);
        return std::wstring();
    }
    

提交回复
热议问题