Programación General > Visual C++

 Funcion Para Obtener La Ruta De Un Archivo.

<< < (2/3) > >>

Diodo:
Hola

Mira a ver si te vale esta funcion:


--- Código: Text --- #include &#60;windows.h&#62; char * DirectorioEjecutable (char* Directorio,int EspacioReservado){  int i;  GetModuleFileName(GetModuleHandle(NULL),Directorio,EspacioReservado);  for(i=strlen(Directorio);Directorio[i]!='&#092;&#092;';i--);  Directorio[++i]=0;  return Directorio;}  
salu2

bcasadorodriguez:
Hola diodo.
La función me devuelve el directorio actual en el que me encuentro, pero yo necesito otra ubicación. Necesito la ruta de un programa que se encuentra en otro lugar, lugar que ni siquiera deberia saber, solo necesitaria introducir en la función que necesito el nombre del archivo ej: word.exe para que me devuelva la ruta de dónde se encuentra ese programa, para poder ejecutarlo cualquiera que sea su lugar.

Eternal Idol:
Ejemplo de la MSDN para buscar archivos:


--- Código: Text --- #define _WIN32_WINNT 0x0400 #include &#60;windows.h&#62;#include &#60;stdio.h&#62; int main(int argc, char *argv[]){  WIN32_FIND_DATA FindFileData;  HANDLE hFind;   printf (&#34;Target file is %s.&#092;n&#34;, argv[1]);  hFind = FindFirstFile(argv[1], &FindFileData);  if (hFind == INVALID_HANDLE_VALUE)   {    printf (&#34;Invalid File Handle. GetLastError reports %d&#092;n&#34;, GetLastError ());    return (0);  }   else   {    printf (&#34;The first file found is %s&#092;n&#34;, FindFileData.cFileName);    FindClose(hFind);    return (1);  }}  
Lo podes hacer recursivo para que busque en todo el HD. Pero la pregunta es, ¿Que programa queres ejecutar? ¿No es preferible que este siempre en una ruta conocida, no el nombre sino que la pueda obtener con alguna funcion de la API como \Archivos de programa\ \Program Files\ por ejemplo?

bcasadorodriguez:
Hola Eternal idol, este programa de MSDN, busca un archivo pero solo si yo le doy la ruta completa de dónde está.
Actualmente, en el programa que estoy desarrollando, para que se me ejecute el programa que necesito abrir, tengo puesta toda la ruta completa con el nombre del archivo ejecutable. Pero mi problema es que si este programa lo quiero trasladar a otro ordenador que no tenga windows xp, sino que tenga tenga por ejemplo w98 u otro diferente, ya no se podria ejecutar porque la ruta cambiaria; Entonces, si yo quiero transportar este programa a otro ordenador con otra version de windows seria mejor obtener la ruta mediante alguna función con la que sólo con pasarle como argumento el nombre del programa funcion(word.exe), me devolviese la ruta que yo necesito. No se si me entiendes.
De todas formas, tampoco se a lo que te refieres con lo de la Api, porque nunca he usado ninguna api.
Gracias !

Eternal Idol:

--- Cita de: "bcasadorodriguez" --- Hola Eternal idol, este programa de MSDN, busca un archivo pero solo si yo le doy la ruta completa de dónde está.
Actualmente, en el programa que estoy desarrollando, para que se me ejecute el programa que necesito abrir, tengo puesta toda la ruta completa con el nombre del archivo ejecutable. Pero mi problema es que si este programa lo quiero trasladar a otro ordenador que no tenga windows xp, sino que tenga tenga por ejemplo w98 u otro diferente, ya no se podria ejecutar porque la ruta cambiaria; Entonces, si yo quiero transportar este programa a otro ordenador con otra version de windows seria mejor obtener la ruta mediante alguna función con la que sólo con pasarle como argumento el nombre del programa funcion(word.exe), me devolviese la ruta que yo necesito. No se si me entiendes.
De todas formas, tampoco se a lo que te refieres con lo de la Api, porque nunca he usado ninguna api.
Gracias !
--- Fin de la cita ---
Como te decia antes lo podes hacer recursivo, pones que busque * y te devuelva todos los directorios, pero es una perdida de tiempo.

¿Porque va a cambiar de Windows 98 a Windows XP? ¿El programa se va a instalar o solo lo vas a copiar?

Si todos los programas van a estar en la misma ruta, que supongo sera asi, con que no pongas ruta y solo los nombres te va a funcionar perfectamente. Y si queres en ese caso si podes usar la funcion que te paso Diodo u otra funcion de la API de Windows llamada GetCurrentDirectory para conseguir la ruta actual y agregarle a ella el nombre del ejecutable.

API es Application Programming Interface y en este caso es la de Windows, son las funciones que provee el Sistema Operativo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa