Получение полного пути к процессу по ID

300
15 декабря 2016, 16:13

Имею ID процесса, отсюда могу найти его хендл, нужно найти полный путь к файлу, пока из примеров Майкрософт удалось только получить название файла с расширением, а нужно полный путь, включая название. Может кто направить на путь истинный?

Код:

 std::string FunctionalSet::GetProcCommandLine(_int32 ProcessID)
 {
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
    return ("0");
}
pe32.dwSize = sizeof (PROCESSENTRY32);
Process32First(hProcessSnap, &pe32);
do
{
    if (pe32.th32ProcessID == ProcessID)
    {
        return pe32.szExeFile;
    }
} while (Process32Next(hProcessSnap, &pe32));
return ("0");
}
Answer 1

Я нашел решение:

GetModuleFileNameEx

Я думал, что эта функция будет доступна из библиотеки windows.h.

Я подключил следующую библиотеку и все заработало

#include  < Psapi.h>

Процедура, которая принимает ID и возвращает полный путь к процессу.

Код:

  std::string FunctionalSet::GetProcCommandLine(_int32 ProcessID)
  {
       setlocale(0, "");
       char path[256] = "";
       HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
       HMODULE mod;
       EnumProcessModules(pHandle, &mod, sizeof(HMODULE), NULL);
       GetModuleFileNameEx(pHandle, mod, path, 255);
       return path;
  }
READ ALSO
Вставка кода Assembler-a

Вставка кода Assembler-a

Мне необходимо выставить значение 0xFFFE по адресу 0x80002040, я написал для этого такой код:

652
С чего начать изучение C++? [дубликат]

С чего начать изучение C++? [дубликат]

На данный вопрос уже ответили:

332
Множества как индекс в массиве C++

Множества как индекс в массиве C++

Имеется следующий код:

254