Da es mich immer wieder nervt, dass man nicht alle Werte auf einam laus der Registry auslesen kann, hab ich mal diese UDF geschrieben, die das Problem für mich gelöst hat.
Kann man sowas gebrauchen? Freue mich auf Kritik und Vorschläge zur Verbesserung.
Spoiler anzeigen
#include-once
; ==============================================================================================================
; ..............Name : _REGRead
; ......Beschreibung : Liest alle Werte eines Schlüssels in der Regisrty aus und gibt diese in einem Array zurück.
; ............Syntax : _REGRead($REGKey)
; .........Parameter : $REGKey - Der Schlüssel aus dme die Werte ausgelesen werden sollen.
; .....Rückgabe Werte: Erfolg - Gibt ein 2D Array zurück, $Array[0][0] enthält die Anzahl der Werte.
;....................: Fehler - Setzt @error auf 1 wenn der angegebene schlüssel nicht existiert.
; .............Author: .::Mignon::.
; ==============================================================================================================
Func _REGRead($RegKey)
$KeyCheck = RegRead($RegKey,"")
If @error = 1 Then Return SetError(1)
Local $ArREG[2][2]
$Count = 1
While 1
$ArREG[$Count][0] = RegEnumVal($RegKey, $Count)
If @error Then ExitLoop
ReDim $ArREG[UBound($ArREG) + 1][2]
$Count += 1
WEnd
For $j = 1 To $Count - 1
$ArREG[$j][1] = RegRead($RegKey, $ArREG[$j][0])
Next
ReDim $ArREG[UBound($ArREG) - 1][2]
$ArREG[0][0] = $Count - 1
Return $ArREG
EndFunc ;==>_REGRead
Anwendungs Beispiel:
Spoiler anzeigen
#include <REG.au3>
[/autoit] [autoit][/autoit] [autoit]$Array = _REGRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
if @error Then MsgBox(16,"Fehler","Das angegebene Schlüssel existiert nicht.")
MsgBox(0,"",$Array[0][0]) ; Gibt die Anzahl der Schlüssel an.
MsgBox(0,"",$Array[1][0]) ; Gibt den Namen des Schlüsssels an.
MsgBox(0,"",$Array[2][1]) ; Gibt den Wert des Schlüssels an.