Archivos de programa

06/11/2007 - 19:23 por xavi | Informe spam
Hola al grupo,

Tengo un ordenador con Windows Vista Ultimate. En el explorador de archivos
me aparecen 2 carpetas llamadas Archivos de Programa. Si utilizo el símbolo
del sistema y hago un dir c: /ad, me aparece un directorio llamado Archivos
de Programa y otro llamado Program Files.

Eso no tendria nada de especial si no fuera que necesito recuperar la ruta a
una base de datos situada en C:\Archivos de Programa

Me explico. En algunos ejemplos desarrollados en Access utilizamos la base
de datos Neptuno que se instala en C:\Archivos de Programa\Microsoft
Office\Office\Samples\. Para no enviar las tablas junto con el ejemplo,
estos sólo contienen formularios y, en el primero de ellos se establece una
vinculación con esa base de datos que ya posee (o deberia poseer) el usuario
que descarga el ejemplo.

En función de la versión de Office instalada podemos saber una parte de la
ruta hasta la Neptuno. Las rutas varian entre la versión 2000 y las
posteriores. Pero necesitamos la primera parte: la que nos devuelve el
directorio Archivos de Programa.

Si utilizamos Environ("ProgramFiles") o APIs más 'sofisticadas' siempre
obtenemos C:\Program Files, cuando en realidad la ruta a obtener deberia ser
C:\Archivos de Programa

Hemos encontrado algo llamado SHGetLocalizedName que parece que puede
servirnos pero, lamentablemente, no hemos sabido descifrar la forma de
hacerlo.

¿Alguna sugerencia?

Muchas gracias y perdon por la extensión.


Un saludo

Xavi

http://www.llodax.com
http://www.mvp-access.com/foro
 

Leer las respuestas

#1 Jume
06/11/2007 - 22:28 | Informe spam
si te fijas al hacer el dir, una de esas carpetas (archivos de programa) es
un "junction" que apunta a "program files"

la carpeta "real" es program files, y el junction esta ahi para que los
programas que apunten a "archivos de programa" se instalen igualmente en
program files, aun sin que ellos lo sepan (luego al acceder el programa a
archivos de programa se redireccionara igualmente a program files), dicho de
otro modo, para una aplicacion las dos son la misma

supongo que no te valdra la informacion si quieres andar moviendo la
aplicacion entre vista y xp (en xp no tienes esa redireccion creada), pero
si vas a dejar la aplicacion en vista definitivamente, simplemente prueba a
ver si te funciona correctamente

otra opcion que funciona en casi todos los programas (que usen llamadas del
sistema), es configurar esas tablas para que accedan a traves de la variable
%programfiles%, o sea, en vez de "C:\Archivos de Programa\Microsoft
Office\Office\Samples\", seria "%programfiles%\Microsoft
Office\Office\Samples\", dicha variable se crea al instalarse windows con la
ruta que tiene la carpeta de instalacion de programas, sea "archivos de
programa", "program files", o cualquier otro idioma :-)

Preguntas similares