Zugriff auf LocalApplicationData Equivalent in Delphi

7

Wie greife ich mit Delphi auf das Äquivalent von .NETs System.Environment.SpecialFolder.LocalApplicationData -Variable zu (das in jeder Windows-Version funktioniert)? Ich nahm an, ich könnte einfach tun:

%Vor%

Dies funktioniert unter Vista, aber XP scheint diese Umgebungsvariable zumindest auf meinem Testcomputer nicht standardmäßig einzustellen.

    
Dave 22.01.2009, 22:35
quelle

3 Antworten

18

In Delphi sind die speziellen Systemordnerpfadkonstanten in ShlObj.DCU definiert und werden in der Form von CSIDL_ gefolgt von einem symbolischen Namen referenziert. Beispiel:

  • CSIDL_DESKTOPDIRECTORY gibt die Pfad zum aktuellen Desktop
  • CSIDL_PERSONAL ist das Verzeichnis Eigene Dateien
  • CSIDL
John Bennett 23.01.2009, 03:10
quelle
1

Siehe diesen Artikel .

Bearbeiten:

Wie im Kommentar von stukelly hinzugefügt, gibt es noch viel mehr Informationen über die SHGetFolderPath () Funktionalität. Die Delphi-VCL sollte wirklich Funktionalität haben, um Standardpfade zu erhalten, und wenn Embarcadero tatsächlich ein anderes Delphi-ähnliches Werkzeug auf einem anderen Betriebssystem haben wird, wird dies umso wichtiger sein. Für eine plattformübergreifende Implementierung von Systemstandardpfaden siehe auch die Dokumentation von wxStandardPaths in wxWidgets. In MSW verwendet dies die verschiedenen CSIDL_XXX Konstanten.

    
mghie 22.01.2009 22:45
quelle
0

Angenommen, Sie können WinAPI-Aufrufe von Delphi ausführen (was Sie können), das war früher mit einem API-Aufruf möglich (etwas wie GetSystemFolder oder GetUserDataFolder). Es ist eine Weile her, seit ich das tun musste, aber ich denke, dass Sie es jetzt mit SHGetFolderPath , indem CSIDL_LOCAL_APPDATA übergeben wird.

    
gkrogers 22.01.2009 22:49
quelle

Tags und Links