Ver Mensaje Individual
  #7  
Antiguo 30-10-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Con la API GetModuleFileName o GetModuleFileNameEx obtienes lo que buscas. En tu caso precisas abrir el proceso conociendo su PID. para poder hacer eso necesitar ejecutar el programa como administrador. Para evitar eso, yo uso esta forma:

Código PHP:
bool GetProcessImageFileName(DWORD dwProcessIdcharExePathint Size)
{
  if(
dwProcessId==&& Size){
    *
ExePath 0;
    return 
true;
  }
  
HANDLE hSnapshot;
  
MODULEENTRY32 ModuleEntry;
  
ModuleEntry.dwSize sizeof(MODULEENTRY32);
  
bool Result false;
  if(
Size) *ExePath 0;
  
hSnapshot CreateToolhelp32Snapshot(TH32CS_SNAPMODULEdwProcessId);
  if(
hSnapshot != (HANDLE)-1){
    if(
Module32First(hSnapshot, &ModuleEntry)){
      
Result true;
      
lstrcpyn(ExePathModuleEntry.szExePathSize);
    }
    
CloseHandle(hSnapshot);
  }
  return 
Result;

Si te fijas no usa String. El buffer debe ser un char* y debes pasar el tamaño del mismo. Puedes modificarlo para usar Strings.


Saludos.
Responder Con Cita