Domanda

Ho un programma VB6 un'eredità che installa un file di Access in una sotto-directory della cartella di dati comuni (CSIDL_COMMON_APPDATA). Ora ho installato questo programma su un sistema a 64-bit di Vista, e il programma funziona bene e accede al file in C:. \ ProgramData \ Wow \ WowCat.mdb, ma questo file non mostra in Esplora risorse

Voglio sovrascrivere questo database, con una versione successiva, preso dal mio vecchio PC, ma usando Explorer non riesco a vedere il file in C: \ ProgramData \ Wow \ (sto mostrando tutti i file nascosti e di sistema). Se vado avanti e copiare il nuovo WowCat.mdb in ogni caso, il programma funziona ancora con la vecchia.

Stepping il codice in VB, è sicuramente l'apertura del file in: C: \ ProgramData \ Wow \ WowCat.mdb. Cercando su C:? Guidare solo mostra la nuova copia, in modo da dove è quella che il programma sta accedendo

È stato utile?

Soluzione

Questo è causa di reindirizzamento delle cartelle in Windows Vista. Se normalmente non dispone dei diritti per scrivere qualcosa nella cartella C: \ Program Files-cartella, Vista silenziosamente reindirizzare quei scrive in una cartella "segreto" all'interno della vostra directory utente. Il file sarà ancora visibile per l'utente che ha creato il file (e tutti i programmi in esecuzione come utente), ma non sarà visibile per chiunque altro. Così il vostro programma è probabilmente in esecuzione come utente diverso da Explorer è, e quindi Explorer non può vederlo.

Si veda il seguente output da dir / aL sul mio Vista computer a 64 bit:

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 funzione è nota come punti o giunzioni di analisi, a seconda di dove si legge su di loro. Essi sono molto simili a collegamenti simbolici in Unix.

Altri suggerimenti

In questo modo richiede correttamente un Windows Installer MSI o installatore legacy in esecuzione elevato il crea una sottocartella CommonAppDataFolder, dà il controllo completo per Everyone (o un gruppo appropriato) a questa cartella, e, infine, pone il vostro MDB lì. È inoltre possibile creare la cartella, spostare il file MDB lì, e impostare le autorizzazioni su un solo file.

E 'anche possibile che il file EXE stesso per fare questo al primo avvio se viene eseguito elevato o rileva l'omissione e genera un processo di elevata per fare il lavoro. Standard impongono che tale azione dovrebbe essere avviato tramite una voce di menu o il pulsante con l'icona UAC Shield visualizzata però, e non solo a spuntare un prompt UAC.

E 'tutto molto più facile tramite un pacchetto MSI però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top