如何使用C++获取 进程的 绝对路径?

2025-05-21 16:18:08
推荐回答(3个)
回答(1):

DWORD GetProcessId(IN PCHAR szExeName){ DWORD dwRet = 0; DWORD dwCount = 0; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot != INVALID_HANDLE_VALUE) { PROCESSENTRY32 pe = {0}; pe.dwSize = sizeof(PROCESSENTRY32); BOOL bRet = Process32First(hSnapshot, &pe); while (bRet) { if (!_stricmp(pe.szExeFile, szExeName)) { dwCount++; dwRet = pe.th32ProcessID; } bRet = Process32Next(hSnapshot, &pe); } if (dwCount > 1) dwRet = 0xFFFFFFFF; CloseHandle(hSnapshot); } return dwRet;}DWORD ID = GetProcessId("notepad.exe");GetModuleFileNameEx(ID, NULL, path, sizeof(path));

回答(2):

这代码写的真挫。OpenProcess(PROCESS_ALL_ACCESS....

回答(3):

修改为相对路径呢,遍历进程name来解析