file mancante dalla cartella Vista ProgramData
-
23-08-2019 - |
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
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ò.