2014-12-06 116 views
0

我想读的是存在于注册表值: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方法读取注册表值,但在我的情况下,路径是一个变量 - 我该如何去呢?

非常感谢!

回答

0

如何遍历所有的键了解更多关于RegistryKey

特定的注册表路径

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 
      * 
      */ 
     } 
    } 
}