These techniques are very hit-and-miss and will only give you an approximation of the string data - if you are lucky!

Don't forget that binary objects are just that. If you think of them as a database record you will be close to understanding what they are about.

As well as strings (unicode or otherwise) they may contain any type of data of any length - byte arrays, numbers in different formats and so-on.

Picking every fourth character from the entry may get you unicode strings, but it won't decode numerics. Also, if any of the intervening data are not on a four byte boudary then even the simple string decoding will fail.

You may be lucky that strings are zero delimited, in which case you can find the end of a string:
 Code:
$HexValue = ReadValue('HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs','0')
For $i=1 to Len($HexValue) Step 4
	$c=Val("&"+SubStr($HexValue,$i,2))
	$z=$z+IIf($c,Chr($c),"<end>"+@CRLF)
Next
$=MessageBox($z,"info")


However, you really need to be sure of the data format otherwise your chance of success is governed by luck.