Итак имена мы научились получать, теперь нам нужен тип и само значение это может сделать функция GetValue:
public object GetValue(string);
Смотрим пример:
using System; using Microsoft.Win32; class MainClass { public static void Main(string[] args) { RegistryKey rk = Registry.CurrentConfig; GetNext(rk); } public static void GetNext(RegistryKey rk) { foreach(string cv in rk.GetValueNames()) { Console.Write("Value - "); Console.Write(cv); Console.Write(" - "); object o = rk.GetValue(cv); Console.Write(o.GetType()); Console.Write(" - " ); Console.WriteLine(o.ToString()); } foreach (string s in rk.GetSubKeyNames()) { Console.WriteLine(s); GetNext(rk.OpenSubKey(s)); } } }
Результат возврата класс Object из него можно получить тип и содержание, смотрите описание Object с шага "Шаг 128 - Основа основ класс Object и ToString". Результат нашей работы.
И реестр.