首页 > 代码库 > C++ 获取进程路径

C++ 获取进程路径

下面的实例可以简便实现这个功能。
#include <stdio.h>
#include <windows.h>
int main()
{
     char str[MAX_PATH];
     GetModuleFileName(NULL, str, MAX_PATH);
     puts(str);
     return 0;
}

另外,想要枚举系统里面全部的进程,可以使用如下方式,关键是CreateToolhelp32Snapshot函数。

PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);//set struct size;
    //Give a fast shoot to the system all process;
    HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    
    if (hProcessSnap==INVALID_HANDLE_VALUE)
    {
        AfxMessageBox(_T("CreateToolhelp32Snapshot FAIL!"));
        return true;
    }
    //Interactor
    BOOL bMore=::Process32First(hProcessSnap,&pe32);
    while(bMore)
    {
    }
    ::CloseHandle(hProcessSnap);

获取进程的相关信息,可以通过ZwQuerySystemInformation。

C++ 获取进程路径