Función GetProcessImageFileNameA (psapi.h)
Recupera el nombre del archivo ejecutable para el proceso especificado.
Sintaxis
DWORD GetProcessImageFileNameA(
[in] HANDLE hProcess,
[out] LPSTR lpImageFileName,
[in] DWORD nSize
);
Parámetros
[in] hProcess
Identificador del proceso. El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION o PROCESS_QUERY_LIMITED_INFORMATION . Para obtener más información, consulte Derechos de acceso y seguridad de procesos.
Windows Server 2003 y Windows XP: El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION.
[out] lpImageFileName
Puntero a un búfer que recibe la ruta de acceso completa al archivo ejecutable.
[in] nSize
Tamaño del búfer lpImageFileName , en caracteres.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto especifica la longitud de la cadena copiada en el búfer.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
El archivo Psapi.dll se instala en el directorio %windir%\System32. Si hay otra copia de este archivo DLL en el equipo, puede provocar el siguiente error al ejecutar aplicaciones en el sistema: "No se pudo encontrar el punto de entrada del procedimiento GetProcessImageFileName en la biblioteca de vínculos dinámicos PSAPI.DLL". Para solucionar este problema, busque las versiones que no estén en el directorio %windir%\System32 y elimine o cambie su nombre y reinicie.
La función GetProcessImageFileName devuelve la ruta de acceso en el formulario del dispositivo, en lugar de letras de unidad. Por ejemplo, el nombre de archivo C:\Windows\System32\Ctype.nls tendría el siguiente aspecto en el formato del dispositivo:
\Device\Harddisk0\Partition1\Windows\System32\Ctype.nls
Para recuperar el nombre del módulo del proceso actual, use la función GetModuleFileName con un identificador de módulo NULL. Esto es más eficaz que llamar a la función GetProcessImageFileName con un identificador para el proceso actual.
Para recuperar el nombre del módulo ejecutable principal para un proceso remoto en formato de ruta de acceso win32, use la función QueryFullProcessImageName .
A partir de Windows 7 y Windows Server 2008 R2, Psapi.h establece números de versión para las funciones DE PSAPI. El número de versión de PSAPI afecta al nombre utilizado para llamar a la función y a la biblioteca que debe cargar un programa.
Si PSAPI_VERSION es 2 o superior, esta función se define como K32GetProcessImageFileName en Psapi.h y exportada en Kernel32.lib y Kernel32.dll. Si PSAPI_VERSION es 1, esta función se define como GetProcessImageFileName en Psapi.h y exportada en Psapi.lib y Psapi.dll como contenedor que llama a K32GetProcessImageFileName.
Los programas que deben ejecutarse en versiones anteriores de Windows, así como Windows 7 y versiones posteriores, siempre deben llamar a esta función como GetProcessImageFileName. Para garantizar la resolución correcta de símbolos, agregue Psapi.lib a la macro TARGETLIBS y compile el programa con -DPSAPI_VERSION=1. Para usar la vinculación dinámica en tiempo de ejecución, cargue Psapi.dll.
Nota
El encabezado psapi.h define GetProcessImageFileName como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | psapi.h |
Library | Kernel32.lib en Windows 7 y Windows Server 2008 R2; Psapi.lib (si PSAPI_VERSION=1) en Windows 7 y Windows Server 2008 R2; Psapi.lib en Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP |
Archivo DLL | Kernel32.dll en Windows 7 y Windows Server 2008 R2; Psapi.dll (si PSAPI_VERSION=1) en Windows 7 y Windows Server 2008 R2; Psapi.dll en Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de