Pregunta

Tengo un programa VB6 legado que instala un archivo de Access en un subdirectorio de la carpeta de datos comunes (CSIDL_COMMON_APPDATA). Ahora he instalado este programa en un sistema de 64 bits de Vista, y el programa funciona bien y tiene acceso el archivo en C:. \ Datos de programa \ Wow \ WowCat.mdb, pero este archivo no aparece en el Explorador de Windows

Quiero sobrescribir esta base de datos, con una versión posterior, tomado de mi viejo PC, pero con el Explorador no puedo ver el archivo en C: \ Datos de programa \ Wow \ (estoy mostrando todos los archivos ocultos y de sistema). Si voy adelante y copiar los nuevos WowCat.mdb todos modos, el programa sigue funcionando con el antiguo.

Al entrar el código en VB, que es sin duda abre el archivo en: C: \ Datos de programa \ Wow \ WowCat.mdb. Buscando en la C: conducir sólo muestra la nueva copia, así que ¿dónde está el que el programa está accediendo

¿Fue útil?

Solución

Esto es debido a la redirección de carpetas en Windows Vista. Si usted normalmente no tiene los derechos para escribir algo en el directorio C: \ Archivos de programa-carpeta, Vista silenciosamente redirigir esos escribe en una carpeta "secreta" dentro de su directorio de usuario. El archivo aún será visible para el usuario que creó el archivo (y todos los programas que se ejecutan como ese usuario), pero no será visible para nadie más. Por lo que su programa es probable ejecutando como un usuario diferente que Explorer es, y por lo tanto Explorer no puede verlo.

Vea la siguiente salida de dir / Al en mi Vista máquina de 64 bits:

C:\ProgramData>dir /aL
 Volume in drive C has no label.
 Volume Serial Number is 74DB-58F8

 Directory of C:\ProgramData

02.11.2006  16:41    <JUNCTION>     Application Data [C:\ProgramData]
02.11.2006  16:41    <JUNCTION>     Desktop [C:\Users\Public\Desktop]
02.11.2006  16:41    <JUNCTION>     Documents [C:\Users\Public\Documents]
02.11.2006  16:41    <JUNCTION>     Favorites [C:\Users\Public\Favorites]
02.11.2006  16:41    <JUNCTION>     Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
02.11.2006  16:41    <JUNCTION>     Templates [C:\ProgramData\Microsoft\Windows\Templates]
               0 File(s)              0 bytes
               6 Dir(s)  62 040 051 712 bytes free

La función se conoce como puntos o cruces de reanálisis, dependiendo de donde se lee acerca de ellos. Son muy similares a los enlaces simbólicos en Unix.

Otros consejos

Al hacer esto correctamente requiere un instalador MSI de Windows o el legado de instalación en funcionamiento elevado el crea una subcarpeta bajo CommonAppDataFolder, permite un control total para todos (o un grupo adecuado) para esta carpeta, y finalmente coloca su MDB allí. También puede crear la carpeta, mover el archivo MDB allí, y establecer permisos en un solo archivo.

También es posible que el EXE en sí para hacer esto en la primera ejecución si se ejecuta elevado o detecta la omisión y genera un proceso de elevada para hacer el trabajo. Normas dictan que esta acción debe ser iniciado a través de un elemento de menú o un botón con el icono del escudo UAC está representada sin embargo, y no sólo a aparecer un mensaje de UAC.

Es todo mucho más fácil a través de un paquete MSI sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top