Registry - Wert oder Werte auslesen!

Aus einer Anfrage: Wie kann ich aus einem bestimmten Schlüssel in der Registry den letzten bzw. die letzten drei Werte auslesen. Interessant z. B., wenn in der Registry Programmabläufe dokumentiert werden (die Konstante strPath natürlich anpassen) - das Ganze per WMI:

Quelle: MSDN-Artikel

Option Explicit
Const HKEY_CURRENT_USER = &H80000001
Const strPath As String = _
"Software\Microsoft\Windows\CurrentVersion\Themes"
Sub Letzter_Wert()
Dim objRegistry As Object
Dim arrValue As Variant
Dim arrName As Variant
Dim arrType As Variant
On Error GoTo Fin
Set objRegistry = GetObject _
("winmgmts:\\.\root\default:StdRegProv")
objRegistry.EnumValues HKEY_CURRENT_USER, _
strPath, arrName, arrType
Debug.Print arrName(Ubound(arrName))
objRegistry.GetSTRINGValue HKEY_CURRENT_USER, _
strPath, arrName(Ubound(arrName)), arrValue
Debug.Print arrValue
Fin:
Set objRegistry = Nothing
End Sub
Sub Letzte_drei_Werte()
Dim objRegistry As Object
Dim varValue As Variant
Dim varName As Variant
Dim varType As Variant
Dim lngTMP As Long
Dim bytTMP As Byte
On Error GoTo Fin
Set objRegistry = GetObject _
("winmgmts:\\.\root\default:StdRegProv")
objRegistry.EnumValues HKEY_CURRENT_USER, _
strPath, varName, varType
For lngTMP = Ubound(varName) To Lbound(varName) Step -1
bytTMP = bytTMP + 1
If bytTMP = 4 Then Exit For
Debug.Print varName(lngTMP)
objRegistry.GetSTRINGValue HKEY_CURRENT_USER, _
strPath, varName(lngTMP), varValue
Debug.Print varValue
Next lngTMP
Fin:
Set objRegistry = Nothing
End Sub

Kommentare

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...