para - ¿Cómo puedo obtener el nombre del archivo ejecutable de la instancia actual desde la aplicación nativa win32 C++?
mingw g++ (5)
Posible duplicado:
¿Cómo obtener el nombre del ejecutable de la aplicación en Windows (C ++ Win32 o C ++ / CLI)?
¿Cómo puedo obtener la ruta y el nombre de archivo de la instancia actual desde mi aplicación nativa win32 C ++?
Por ejemplo; si mi aplicación fuera c: / projects / testapps / getapppath.exe, podría indicar que la ruta es c: / projects / testapps / getapppath.exe
ACTUALIZACIÓN: ¡Funciona solo para aplicaciones de consola!
La ruta del programa se pasa como primer argumento, se almacena en argv[0]
en la función main(argc, argv[])
.
Probado
int _tmain(int argc, _TCHAR *argv[])
{
_tprintf(L"%s", argv[0]);
return 0;
}
Imprime ruta completa.
Puede hacerlo a través de la GetModuleFileName .
TCHAR szFileName[MAX_PATH + 1];
GetModuleFileName(NULL, szFileName, MAX_PATH + 1)
GetCurrentProcess , luego QueryFullProcessImageName
Otras respuestas son mejores para su propio proceso, es preferible para las remotas. Por los documentos :
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 eficiente 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 win32, use la función QueryFullProcessImageName.