PDA

Ver la Versión Completa : Problema con registro y directorio de aplicación


yomismo24
29-08-2008, 13:11:10
Hola a tod@s
tengo un problemilla y la verdad es que no tengo ni idea de como solucionarlo, a ver si alguien sabe la solución.
Tengo una aplicación en la que guardo ficheros de Logs, en el mismo directorio en el que se ejecuta la aplicación. Para saber el directorio donde se ejecuta uso GetCurrentDir(); y me funciona a la perfección.
Mas tarde hice un instalador para la aplicación con InstallJamer y en ella hago que mi aplicación se ejecute al iniciar windows. Para ello escribo creo una clave en el registro (SOFTWARE\Microsoft\Windows\CurrentVersion\Run)

Al iniciar windows se lanza mi aplicación (instalada en c:\Archivos de programa\MiAplicacion\Aplicación.exe) sin problemas, pero me salta un error porque no es capaz de crear el archivo de log (c:\Documents and settings\Ivan\Fichero.log)

Como se puede ver la instruccion GetCurrentDir() está cogiendo otro directorio diferente al directorio donde esta corriendo la alicación. (Debería crear el fichero: c:\Archivos de programa\MiAplicacion\Fichero.log)

Esto solo lo hace cuando la aplicación se lanza al inciar windows, si la lanzo yo mediante los accesos directos funciona de maravilla.

Espero haber explicado bien cual es mi problema y que me podais hechar una mano.

Muchas gracias y un saludo!!

Besto
29-08-2008, 13:24:44
Para saber la ruta de la aplicación usa esta otra funcion:
Camino := ExtractFilePath( Application.ExeName );

seoane
29-08-2008, 13:25:15
Utiliza esto:

NombreDelFichero:= InludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'Fichero.Log';

Caro
29-08-2008, 13:27:02
Hola yomismo, has la prueba de utilizar ExtractFilePath(Application.ExeName) +'\Fichero.log'

Saluditos

yomismo24
29-08-2008, 13:57:26
Hola a tod@s
pues nada, como bien habeis dicho, usando ExtractFilePath(Application.ExeName) funciona a las mil maravillas jeje.
Muchas gracias a tod@s por la ayuda y por haber contestado tan pronto.

Un saludo!!