Función equivalente a QueryFullProcessImageName para win XP

Iniciado por el_doctor, 1 Diciembre 2014, 15:32 PM

0 Miembros y 1 Visitante están viendo este tema.

el_doctor

Hola, alguien sabe de una función que sea equivalente a la función QueryFullProcessImageName pero que su requerimientos mínimos para el sistema sea windows XP ya que esta función no es soportada en windows XP.
Buscando en la documentación de Microsoft encontré la función GetProcessImageFileName pero el problema es la forma en que retorna el path ya que esta función lo retorna en forma de dispositivo no en forma de unidad. Por ejemplo para el proceso del explorer la función QueryFullProcessImageName el retorno es: "C:\\Windows\\explorer.exe"; en cambio la función GetProcessImageFileName lo retorna de la forma: "\\Device\\HarddiskVolume2\\Windows\\explorer.exe" y de esta forma no me sirve.
Y el problema que necesito que la función como parámetro le envíe un process handle

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

el_doctor

use la función GetModuleFileNameEx pero no me retorna nada y es con el mismo proceso que había probado no se si he hecho algo mal.

Código (cpp) [Seleccionar]

TCHAR lpFileName[MAX_PATH];

ZeroMemory(&lpFileName, sizeof(lpFileName));

GetModuleFileNameEx(hProcess, NULL, lpFileName, sizeof(lpFileName)/sizeof(*lpFileName))

x64core

Cita de: el_doctor en  1 Diciembre 2014, 16:18 PM
use la función GetModuleFileNameEx pero no me retorna nada y es con el mismo proceso que había probado no se si he hecho algo mal.

Código (cpp) [Seleccionar]

TCHAR lpFileName[MAX_PATH];

ZeroMemory(&lpFileName, sizeof(lpFileName));

GetModuleFileNameEx(hProcess, NULL, lpFileName, sizeof(lpFileName)/sizeof(*lpFileName))



    TCHAR lpFileName[MAX_PATH+1];

    ZeroMemory(lpFileName, sizeof(lpFileName));

    GetModuleFileNameEx(hProcess, NULL, lpFileName, sizeof(lpFileName) / sizeof(lpFileName[0]));



Fijate en la documentación de GetModuleFileNameEx el handle debe tener un determinado acceso al proceso para que eestá función retorne la información.

EI:  ;D

Eternal Idol

Return value
If the function succeeds, the return value specifies the length of the string copied to the buffer.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

GetModuleFileNameEx function.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

el_doctor

#5
Gracias Eternal Idol problema resuelto no consideraba el valor de retorno.




Gracias a todos...  ;D


Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón