Zweck: Man weiß, dass ein oder mehrere Schlüssel Werte enthalten, die man auslesen möchte. Das Problem ist aber, dass jeder Schlüssel einmalig ist, man kennt nur seine Struktur.
Z.B. Will ich von Outlook Express den Speicherort der Mails erfahren. Dieser befindet sich unter
HKEY_CURRENT_USER\Identities\{04353495-3245234ABS-435}\software\microsoft\outlook express\5.0\store root
Um alle Identitäten herauszubekommen, verwendet man nun einfach
1. Parameter: Schlüssel, von wo aus gesucht werden soll
2. Parameter: Regulärer Suchausdruck
3. Parameter (optional): Maximale Trefferzahl (default 1)
4. Parameter (optional): Menge an möglicher unwichtiger Schlüssel (default 0)
Es wird als Array zurückgegeben, wobei das erste Index die Anzahl der Treffer enthält. Sollte der Schlüssel ungültig sein, so wird @error auf 1 gesetzt.
Func _regfilter($current_key, $regex, $maxAnz = 1, $joker_key = 0) $joker_key += $maxAnz Local $valid_key[$maxAnz+1], $j = 1 RegRead($current_key, '') ; Schlüsselexistenzprüfung If @error <> -1 Then Return SetError(1) For $i = 1 To $joker_key If StringRegExp(RegEnumKey($current_key, $i), $regex) And $j <= $maxAnz Then ; Schlüssel gefunden und Begrenzung auf maxAnz $valid_key[$j] = RegEnumKey($current_key, $i) $j += 1 EndIfNext$valid_key[0] = $j-1 ; Menge gültige Schlüssel ReDim $valid_key[$j] Return $valid_keyEndFunc
Have fun