Ja hast den wert schon ausgelesen oder willst jetzt wissen wie man den wert des Keys ausliest?
Und was meinst mit er hat keinen wert?
Wenns kein wert gibt kannst ihn auch ned auslesen...
Ansonsten probier mal neues modul anlegen:
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004 '(nur NT)
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Public Const REG_SZ = 1
Const KEY_QUERY_VALUE = &H1
Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Const ERROR_SUCCESS = 0&
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
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
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 Any) As Long
'----ende deklaration----
Function GetValue(Root&, Key$, Field$, Value As Variant) As Boolean
Dim lResult&, keyhandle&, dwType&
Dim puffergröße&, puffer$, nullpos&
lResult = RegOpenKeyEx(Root, Key, 0, KEY_READ, keyhandle)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Schlüssel existiert nicht
lResult = RegQueryValueEx(keyhandle, Field, 0&, dwType, ByVal 0&, puffergröße)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Feld existiert nicht
if dwType= REG_SZ then ' nullterminierter String
puffer = Space$(puffergröße + 1)
lResult = RegQueryValueEx(keyhandle, Field, 0&, dwType, ByVal puffer, puffergröße)
GetValue = (lResult = ERROR_SUCCESS)
If lResult <> ERROR_SUCCESS Then Exit Function ' Fehler
If IsNull(puffer) Then Exit Function
nullpos& = InStr(puffer, Chr$(0))
If nullpos = 0 Then
value = puffer
elseIf nullpos > 1 Then
Value = Trim$(Left$(puffer, nullpos - 1))
endif
endif
If lResult = ERROR_SUCCESS Then RegCloseKey keyhandle
GetValue = True
End Function
'------- ende Modul -----
Aufrufen mit:
public sub LesePfad()
Dim tmp As Variant
If modulname.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders", "Name_des_schlüsels", tmp) Then
if len(temp) > 0 then path = tmp
msgbox tmp
End If
end sub
Gruß