15 мая "Исходники.РУ" отмечают 20-летие присутствия в сети!
Поздравляем всех причастных и неравнодушных с юбилеем сайта!
И огромное спасибо всем, кто был с нами все эти годы!

Главная Информер Журнал Форум Wiki DRKB Discuz!ML Помощь проекту


Имеется PID процесса,как узнать имя "process executable"?

#include <psapi.h>
#pragma comment(lib,"psapi.lib")
//psapi.h,lib,dll есть в VC5 и VC6

   HANDLE  hProc;
   char    szProcessName [80];
   HMODULE ahMod [10];
   DWORD   dwNeeded;

   hProc = OpenProcess (PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,
                        FALSE,
                        PID); // PID должен быть обьявлен как DWORD
   if (hProc)
   {
      if (EnumProcessModules (hProc,
                              ahMod,
                              sizeof(ahMod),
                              &dwNeeded))
      {
         if (GetModuleBaseName (hProc,
                                ahMod[0],
                                szProcessName,
                                sizeof(szProcessName)))
         {
            <success>
         }
         else
         {
            <failure>
         }
      }
      CloseHandle (hProc);
   }
}