Помимо самых пунктов у каждого пункта может быть значение одно или более. Получить массив имен значений можно используя функцию GetValueNames она вернет массив. Смотрим пример:
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.WriteLine(cv); } foreach (string s in rk.GetSubKeyNames()) { Console.WriteLine(s); GetNext(rk.OpenSubKey(s)); } } }
Все как всегда. Только мы получили ключ можно получить список имен и воспользоваться foreach для их перебора. Вот результат:
А вот реестр: