Hi,

Great this was exectly what I was looking for, thanks!

I've adjusted the code and function so it can read multiple registry entries, their sub entries, their value's and their value data.

Code:

Break ON
$=SetOption("Explicit","ON")

If RedirectOutput("test.txt") = 0
EndIf

Dim $sRootKey
$sRootKey="HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"

Dim $sMain,$sSub,$asMain,$asSub,$sSub2,$asSub2,$Val

$asMain=ReadRegArr($sRootKey)
For Each $sMain in $asMain
;"Main key: "+$sMain+@CRLF
$asSub=ReadRegArr($sRootKey+"\"+$sMain)
For Each $sSub in $asSub
;" Sub key: "+$sSub+@CRLF
$asSub2=ReadRegValArr($sRootKey+"\"+$sMain+"\"+$sSub)
For Each $sSub2 in $asSub2
;" sub - Sub key: "+$sSub2+@CRLF
$Val = ReadValue($sRootKey+"\"+$sMain+"\"+$sSub, $sSub2)
If INSTR($Val,".pst")
? "Value data: " + $Val+@CRLF
EndIf
Next
Next
Next
Exit 0

Function ReadRegArr($sKey)
Dim $i,$sSubKey

Redim $ReadRegArr[0]

$i=0
$sSubKey=EnumKey($sKey,$i)
While Not @ERROR
ReDim Preserve $ReadRegArr[$i]
$ReadRegArr[$i]=$sSubKey
$i=$i+1
$sSubKey=EnumKey($sKey,$i)
Loop
If @ERROR=259 Exit 0 Else Exit @ERROR EndIf
EndFunction

Function ReadRegValArr($sVKey)
Dim $iV,$sVSubKey

Redim $ReadRegValArr[0]

$iV=0
$sVSubKey=EnumValue($sVKey,$iV)
While Not @ERROR
ReDim Preserve $ReadRegValArr[$iV]
$ReadRegValArr[$iV]=$sVSubKey
$iV=$iV+1
$sVSubKey=EnumValue($sVKey,$iV)
Loop
If @ERROR=259 Exit 0 Else Exit @ERROR EndIf
EndFunction

Function ReadRegValArr2($sV2Key,$sV2Value)
Dim $iV2,$sV2SubKey

Redim $ReadRegValArr2[0]

$iV2=0
$sV2SubKey=ReadValue($sV2Key,$iV2)
While Not @ERROR
ReDim Preserve $ReadRegValArr2[$iV2]
$ReadRegValArr2[$iV2]=$sV2SubKey
$iV2=$iV2+1
$sV2SubKey=ReadValue($sV2Key,$iV2)
Loop
If @ERROR=259 Exit 0 Else Exit @ERROR EndIf
EndFunction



So if someone can use this, it works!

regards,

jeroen