• Lunes 6 de Mayo de 2024, 07:43

Autor Tema:  Problemas  (Leído 1135 veces)

AURED

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Problemas
« en: Miércoles 11 de Agosto de 2004, 20:20 »
0
A ver si alguien puede ayudarme.
Tengo el siguiente problema, En mi aplicación al inicarse el programa necesita leer de un archivo unas cosas que tiene que aparecer por pantalla.

La cosa es que para que no haya ninguna duda acerca del archivo que ha de abrir, cuando ejecuto la aplicación (On Create) cojo el directorio de la aplicacion con
GetCurrentDirectory(2000,raiz)

Y así cuando abro el fichero, le meto todo el nombre, con su path y todo (el fichero que quiero abrir está en el directorio de la aplicación)

String directorio= String(raiz)+"\\Perfiles.txt";
...
origen = fopen(directorio.c_str(), "r");

Así que todo funciona bien, ejecuto la aplicacion y todo va bien. Incluso creo un acceso directo al exe y tambien funciona bien.

El problema me viene cuando uso el Inno Setup para hacer el instalable. Lo creo y hago que aparezca un acceso directo en el escritorio . Entonces cuando voy al menú de inicio donde esta la carpeta con el nombre de mi aplicación o si le doy al acceso directo del escritorio, ocurre que el programa me dice que no encuentra el fichero que ha de leer al inicio, y el error está en que no reconoce como directorio inicial aquel donde esta mi aplicacion sino que considera que es el del escritorio "\Documents and Settings\ Windows XP".

No se como solucionarlo, porque en el script del inno setup esta claro que el icono del grupo del programa del menu de inicio hace referencia al ejecutable de mi aplicacion.

¿Hay alguna otra forma de saber el directorio de la aplicacion sin hacer que capture el directorio actual a la hora de ejecutar el programa?
"Es mejor saber después de haber pensado y discutido que aceptar los saberes que nadie discute para no tener que pensar"

AURED

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Problemas
« Respuesta #1 en: Jueves 12 de Agosto de 2004, 01:41 »
0
Ya lo he solucionado, he encontrado otra manera de capturar en un string el nombre del directorio donde está instalado el ejecutable y ahora parece que no me da problemas en ningún sitio.  :)

Lo hago d eun amanera un tanto chapucera, pero es efectiva, y con eso me sirve, si alguien sabe de una amnera más elegante por favor que me lo diga.

Código: Text
  1. raiz=Application->ExeName.SubString(0,Application->ExeName.LastDelimiter("\\")-1);
  2.  
"Es mejor saber después de haber pensado y discutido que aceptar los saberes que nadie discute para no tener que pensar"