Attribute VB_Name = "VerzeichnisAusRegistry" Const HKEY_CURRENT_USER = &H80000001 Const STANDARD_RIGHTS_READ = &H20000 Const KEY_QUERY_VALUE = &H1 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const SYNCHRONIZE = &H100000 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _ Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Const ERROR_SUCCESS = 0& Const REG_SZ = 1 Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _ (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal _ samDesired As Long, phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _ (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType _ As Long, lpData As Any, lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Sub Verzeichnis_Aus_Registry_Lesen() Dim lngKeyHandle As Long Dim lngResult As Long Dim lngValueLen As Long Dim strValue As String lngResult = RegOpenKeyEx(HKEY_CURRENT_USER, _ "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _ 0&, KEY_READ, lngKeyHandle) If lngResult = ERROR_SUCCESS Then lngValueLen = 2000 strValue = String(lngValueLen, 0) ' "Personal" steht für "Eigene Dateien": lngResult = RegQueryValueEx(lngKeyHandle, "Personal", 0&, REG_SZ, ByVal strValue, _ lngValueLen) If lngResult = ERROR_SUCCESS Then ' *** jetzt das Resultat ausgeben ... *** MsgBox "Der Pfad zum Verzeichnis lautet: " & Left$(strValue, lngValueLen - 1) Else MsgBox "Der gewünschte Schlüssel konnte nicht gefunden werden!" Call RegCloseKey(lngKeyHandle) End If Else MsgBox "Der Registry-Key konnte nicht geöffnet werden!" End If End Sub