27. FAQ o Win API

Q> Is available PID process how to learn a name "process executable"? 
A> 

#include <psapi.h> 
#pragma comment (lib, "psapi.lib") 
//psapi.h, lib, dll is in VC5 and VC6 

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

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

2000 (c) DM