VBA Tipp: Windows Umgebungsvariablen und spezielle Verzeichnisse

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte die tatsächlichen Pfade für spezielle Verzeichnisse wie z.B. "Aktuelle Datenbank" oder "Programme" oder "Eigene Dokumente" ermitteln.


Wiki hinweis.png

Anmerkung: Pfadangaben in folgender Tabelle gehen von einer unmanipulierten Standard Windows-Installation (64-Bit) auf dem Laufwerk C: aus.


Windows Umgebungsvariablen und Spezialordner Access-interne Funktion Windows Scripting Host (WSH),
API-Funktion
Dateiname der aktuellen Datenbank CurrentProject.Name
oder
Dir(CurrentDb.Name)
Ordner der aktuellen Datenbank CurrentProject.Path
Pfad der aktuellen Datenbank CurrentProject.FullName
oder
CurrentDb.Name
Access-Benutzername CurrentUser
Ordner der MSACCESS.EXE SysCmd(acSysCmdAccessDir)
Access-Versionsnummer SysCmd(acSysCmdAccessVer)
oder
Application.Version
Pfad der Access-Arbeitsgruppendatei SysCmd(acSysCmdGetWorkgroupFile)
Ist es eine Runtime-Version? SysCmd(acSysCmdRuntime)
Ordner: C:\ProgramData Environ("ALLUSERSPROFILE")
Ordner: C:\Users\AppData\Roaming Environ("APPDATA")
Ordner: C:\Program Files (x86)\Common Files Environ("CommonProgramFiles")
Ordner: C:\Program Files (x86)\Common Files Environ("CommonProgramFiles(x86)")
Ordner: C:\Program Files\Common Files Environ("CommonProgramW6432")
Computername Environ("COMPUTERNAME") API-Funktion: GetComputerName
Ordner: C:\Users\Anmeldename Environ("HOMEPATH")
Ordner: C:\Users\AppData\Local Environ("LOCALAPPDATA")
Ordner: C:\ProgramData Environ("ProgramData")
Ordner: C:\Program Files Environ("ProgramFiles")
Ordner: C:\Program Files (x86) Environ("ProgramFiles(x86)")
Ordner: C:\Program Files Environ("ProgramW6432")
Ordner: C:\Users\Public Environ("PUBLIC")
Ordner: C:\Windows Environ("SystemRoot")
oder
Environ("windir")
API-Funktion: GetWindowsDirectory
Ordner: C:\Windows\System32 API-Funktion: GetSystemDirectory
Datei: C:\Windows\System32\cmd.exe Environ("ComSpec")
Ordner: C:\Users\Anmeldename\AppData\Local\Temp Environ("TEMP")
Ordner: C:\Users\Anmeldename\AppData\Local\Temp Environ("TMP")
Windows-Benutzername Environ("USERNAME") API-Funktion: GetUserName
Benutzerdomäne Environ("USERDOMAIN")
Ordner: C:\Users\Anmeldename Environ("USERPROFILE")
Ordner: Desktop Alle Benutzer WSH-SpecialFolders: AllUsersDesktop
Ordner: Startmenü Alle Benutzer WSH-SpecialFolders: AllUsersStartMenu
Ordner: Programme Alle Benutzer WSH-SpecialFolders: AllUsersPrograms
Ordner: Autostart Alle Benutzer WSH-SpecialFolders: AllUsersStartup
Ordner: Desktop WSH-SpecialFolders: Desktop
Ordner: Favoriten WSH-SpecialFolders: Favorites
Ordner: Schriftarten WSH-SpecialFolders: Fonts
Ordner: Eigene Dokumente WSH-SpecialFolders: MyDocuments
Ordner: Network Shortcuts WSH-SpecialFolders: NetHood
Ordner: Printer Shortcuts WSH-SpecialFolders: PrintHood
Ordner: Programme Benutzer WSH-SpecialFolders: Programs
Ordner: Zuletzt verwendet WSH-SpecialFolders: Recent
Ordner: Senden an WSH-SpecialFolders: SendTo
Ordner: Startmenü des Benutzers WSH-SpecialFolders: StartMenu
Ordner: Autostart des Benutzers WSH-SpecialFolders: Startup
Ordner: Templates WSH-SpecialFolders: Templates


Wiki hinweis.png Anmerkung: Umgebungsvariablen (z.B. der Windows-Benutzername) lassen sich über Konsolenbefehle oder über Visual-Basic-Scripts temporär manipulieren (überschreiben). Falls solche mutwilligen Manipulationen seitens des Benutzers zu befürchten sind, müssen alternativ entsprechende API-Funktionen zum Auslesen der Werte verwendet werden.


Aufruf

  • Beispiele für den Aufruf der Environ-Funktion:
   ' Pfad zum Ordner "Programme (X86)" anzeigen
   MsgBox Environ("ProgramFiles")
 
   ' Windows-Benutzernamen anzeigen
   MsgBox Environ("USERNAME")
  • Beispiel für Windows Scripting Host-Spezialordner (WSH-SpecialFolders):
   Dim WSH As Object 'Windows Scripting Host
   Set WSH = CreateObject("WScript.Shell")
 
   ' Pfad zum Ordner "Eigene Dokumente" anzeigen
   MsgBox WSH.SpecialFolders("MyDocuments")

Wikilinks


Weblinks