Подстановочные знаки Vb.net в пути реестра

Я хочу прочитать значение реестра, которое находится в:

HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram\PROG7.0.0\Info

Имя значения — «Информация», но ключ «PROG7.0.0» может иметь имя переменной, например « PROG7.2.111", изменив путь на:

HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram\PROG7.2.111\Info

Имя переменной всегда будет иметь вид «PROG7.xx.xxx», где x — целое число. Кроме того, в HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram всегда будет ровно один подраздел с таким именем.

Я знаю, что могу использовать метод Regestry.GetValue для чтения значения реестра, но в моем случае путь является переменной - как я могу это сделать?

Большое спасибо!


person Mohit Singh    schedule 06.12.2014    source источник


Ответы (1)


Как перебрать все ключи по определенному пути реестра

using System;

using Microsoft.Win32;

namespace RegistryLister {
    public static class Program {
        static void Main(string[] args) {
            //var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\MyProgram\");
            var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\");
            if (key != null)
                foreach (var keyName in key.GetSubKeyNames()) {
                    //if (keyName.StartsWith("PROG7"))
                    if (keyName.StartsWith("Mic"))
                        Console.WriteLine(keyName);
                }
            Console.ReadKey();

            /* Outputs:
             * 
             * Microsoft
             * Microsoft Corporation
             * 
             */
        }
    }
}

Подробнее о RegistryKey

person Cadde    schedule 06.12.2014