• Lunes 18 de Noviembre de 2024, 03:35

Autor Tema:  ¿Builder puede saber en que carpeta está el ejecutable?  (Leído 1337 veces)

Goselito_0

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
¿Builder puede saber en que carpeta está el ejecutable?
« en: Jueves 11 de Diciembre de 2008, 13:34 »
0
¿Es posible que Builder sepa en que carpeta se encuentra el ejecutable?
El caso es que el programa debe crear unos resultados en dicha carpeta y en cada ordenador ésta será distina, por esto necesito extraer la carpeta en la que se encuentra el ejecutable.

Muchas gracias de antemano, cualquier ayuda será de gran utilidad.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Builder puede saber en que carpeta está el ejecutable?
« Respuesta #1 en: Jueves 11 de Diciembre de 2008, 13:53 »
0
Si no usas ninguna ruta en el nombre de los ficheros, se guardarán donde el ejecutable.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: ¿Builder puede saber en que carpeta está el ejecutable?
« Respuesta #2 en: Jueves 11 de Diciembre de 2008, 14:43 »
0
Cuando arranca el programa: GetCurrentDirectory. Y sino GetModuleFileName con el modulo como NULL (0).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: ¿Builder puede saber en que carpeta está el ejecutable?
« Respuesta #3 en: Jueves 11 de Diciembre de 2008, 19:27 »
0
Cita de: "m0skit0"
Si no usas ninguna ruta en el nombre de los ficheros, se guardarán donde el ejecutable.

Hola.

No necesariamente, se guarda en el directorio actual. El que en general sean el mismo no quiere decir que siempre vayan a hacerlo. Una forma de cambiarlo es poner otra ruta en el "Start In" (lo siento mis Windows están en inglés) del acceso directo.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Builder puede saber en que carpeta está el ejecutable?
« Respuesta #4 en: Viernes 12 de Diciembre de 2008, 09:11 »
0
Cita de: "rfog"
No necesariamente, se guarda en el directorio actual
¿El actual de qué? Se guarda en el directorio de trabajo del ejecutable, que, si no se modifica explícitamente, es el directorio de ejecución.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: ¿Builder puede saber en que carpeta está el ejecutable?
« Respuesta #5 en: Viernes 12 de Diciembre de 2008, 09:45 »
0
Cita de: "m0skit0"
¿El actual de qué? Se guarda en el directorio de trabajo del ejecutable, que, si no se modifica explícitamente, es el directorio de ejecución.

Como bien dijo rfog es el directorio actual, GetCurrentDirectory: Retrieves the current directory for the current process. Y no es correcto lo que decis ya que no necesariamente el directorio actual es el mismo donde se encuentra el ejecutable, ademas de el ejemplo que dio rfog se me ocurren otros dos casos, uno es ejecutando desde linea de comandos (ej. Z:>c:SRCejemplo.exe donde el directorio sera Z:) o desde el WinDbg donde nos permite especificar el "Start Directory".

Ademas CreateProcess:
  __in_opt     LPCTSTR lpCurrentDirectory,

lpCurrentDirectory [in, optional]
The full path to the current directory for the process. The string can also specify a UNC path.
If this parameter is NULL, the new process will have the same current drive and directory as the calling process. (This feature is provided primarily for shells that need to start an application and specify its initial drive and working directory.)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.