Frage

Ich habe ein Vermächtnis VB6-Programm, das in einem Unterverzeichnis des gemeinsamen Datenordners (CSIDL_COMMON_APPDATA) eine Access-Datei installiert. Ich habe jetzt dieses Programm auf einem 64-Bit-Vista-System installiert ist, und das Programm funktioniert einwandfrei und greift auf die Datei auf C:. \ Programdata \ Wow \ WowCat.mdb, aber diese Datei im Windows-Explorer zeigt nicht

Ich mag diese Datenbank zu überschreiben, mit einer späteren Version, von meinem alten PC genommen, aber Explorer kann ich die Datei in C nicht sehen: \ Programdata \ Wow \ (Ich zeige alle versteckten Dateien und Systemdateien). Wenn ich voran gehen und kopieren Sie die neue WowCat.mdb ohnehin arbeitet das Programm noch mit dem alten.

Stepping den Code in VB, es auf jeden Fall öffnet die Datei unter: C: \ Programdata \ Wow \ WowCat.mdb. Suche in der C: nur Laufwerk zeigt die neue Kopie, also wo ist derjenige, der das Programm zugreift

War es hilfreich?

Lösung

Dies ist wegen der Ordnerumleitung in Windows Vista. Wenn Sie normalerweise nicht die Rechte haben etwas in die C zu schreiben: \ Program Files-Ordner, Vista wird leise diese schreibt in einem „geheimen“ Ordner in Ihrem Benutzerverzeichnis umleiten. Die Datei wird noch sichtbar für den Benutzer, der die Datei erstellt (und alle Programme als dieser Benutzer ausgeführt wird), aber es wird nicht für alle anderen sichtbar sein. So Ihr Programm wird wahrscheinlich als ein anderer Benutzer ausgeführt als Explorer ist und somit Explorer es nicht sehen kann.

Sehen Sie die folgende Ausgabe von dir / aL auf meinem Vista 64-Bit-Maschine:

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

Die Funktion wird als Analysepunkte oder Kreuzungen bekannt, je nachdem, wo Sie sie lesen. Sie sind sehr ähnlich wie symbolische Links in Unix.

Andere Tipps

Auf diese richtig ein Windows Installer MSI oder Legacy-Installationsprogramm ausführen erfordert erhöhte die einen Unterordner unter CommonAppDataFolder schafft, gibt die volle Kontrolle für alle (oder eine entsprechende Gruppe) in diesen Ordner, und schließlich stellt Ihr dort MDB. Sie können auch die Ordner erstellen, die MDB-Datei dort bewegen, und Berechtigungen auf nur die Datei.

Es ist auch möglich, dass die EXE sich dies bei der ersten Ausführung zu tun, wenn es erhöhten ausgeführt wird oder erkennt die Auslassung und laicht einen erhöhten Prozess um den Job zu tun. Normen vorschreiben, dass diese Aktion über einen Menüpunkt oder Button mit dem UAC-Schild-Symbol angezeigt jedoch eingeleitet werden, und nicht nur die UAC-Dialog Aufspringen.

Es ist alles viel einfacher über ein MSI-Paket though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top