Auslesen des Benutzernamens von Windows per VBA aus Access

Ich m÷chte mit Access die aktuellen Anmeldenamen von Windows 98 und NT verwenden, um benutzerspezifische FΣhigkeiten in der Datenbank einzurichten, die sich nicht auf den Anmeldenamen unter Access beziehen. Wissen Sie, wie man den Benutzernamen mit VBA ausliest?

Dazu greifen Sie auf die Informationen in der Registry zu, wofⁿr unter Windows 98 und NT der Windows Scripting Host zustΣndig ist. Er ersetzt die Batch-Programmierung aus DOS-Tagen durch Visual Basic Script. Auch fⁿr die Programmierung von Access stellt der Scripting Host Funktionen fⁿr den Zugriff auf die Registry zur Verfⁿgung. Achten Sie bei NT 4 darauf, da▀ Sie den Scripting Host im Zuge des ╗Option Pack½ auch installiert haben. Erst ab Version 5 bringt NT das Tool automatisch mit. Herunterladen lΣ▀t es sich bei Microsoft unter ╗http://msdn.microsoft.com/ scripting½. Um die Registry mit VBA unter Access zu bearbeiten, brauchen Sie das ╗Shell½-Objekt. Die Methode ╗RegRead½ liest einen Wert aus der Registry aus. Ihr wird als Zeichenkette der Pfad in der Registry ⁿbergeben. Die Zeichenkette mu▀ mit folgenden Root-Schlⁿsseln anfangen:

HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
Damit Access auf den Scripting Host zugreifen kann, legen Sie zunΣchst das ╗Shell½-Objekt mit ╗CreateObject("WScript.Shell")½ an. Zuletzt rufen Sie die Methode ╗RegRead("")½ mit dem jeweiligen Registry-Schlⁿssel auf. Ein Beispiel finden Sie in der Datei ╗BENUTZER.MDB½ auf der Heft-CD.
Listing ╗Benutzer½

Dim WshShell As Object

Dim strUser As String

Set WshShell = CreateObject ("WScript.Shell")

strUser = WshShell.RegRead ("HKLM\ System\ CurrentControlSet\Control\ CurrentUser")

Debug.Print  (strUser)