Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 注册表和注册表配置单元的区别是什么_C#_.net_Registry - Fatal编程技术网

C# 注册表和注册表配置单元的区别是什么

C# 注册表和注册表配置单元的区别是什么,c#,.net,registry,C#,.net,Registry,当我运行以下命令时,rKey有两个值 RegistryKey sqlServer = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server", false); 当我运行以下任一命令时(与同一用户在同一台机器上),我找不到任何值 RegistryKey sqlServer64 = RegistryKey.OpenBaseKey( RegistryHive.LocalMachine, Registr

当我运行以下命令时,rKey有两个值

RegistryKey sqlServer = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server", false);
当我运行以下任一命令时(与同一用户在同一台机器上),我找不到任何值

 RegistryKey sqlServer64 = RegistryKey.OpenBaseKey( RegistryHive.LocalMachine, RegistryView.Registry64);

   RegistryKey sqlServer32 = RegistryKey.OpenBaseKey( RegistryHive.LocalMachine, RegistryView.Registry32 );
有人能告诉我蜂箱与普通注册表访问的答案或描述吗

编辑: 我后来做的是:

 StringBuilder sbKeys = new StringBuilder();

  foreach (var key in sqlServer.GetValueNames() )
  {
       sbKeys.AppendLine( key );
  }

对于所有注册表项。对于sqlServer,我看到了两个值,对于sqlServer32和SqlServer64,没有值。

第二个变量中的问题是无法打开子项。您的
sqlServer.GetValueNames()
调用在特定配置单元的根级别运行

你需要这样:

RegistryKey root = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey sqlServer = root.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
foreach (var key in sqlServer.GetValueNames())
{ .... }
这样做与您的第一个变体(除了registry视图)没有什么不同。我希望使用适当的注册表视图可以解决您的问题


当然,您需要在上面的代码中添加一些错误检查。

您需要显示如何使用
sqlServer64
sqlServer
@“SOFTWARE\Microsoft\Microsoft SQL Server”
第二种变体在哪里?接下来你必须使用OpenSubKey()。好吧,公平地说,我的第一条评论表明我和Hans都强烈怀疑同一个问题。谢谢David,我从Hans在我的帖子上的评论中得到了暗示,我已经觉得自己很愚蠢了(然后解决了这个问题)。虽然接受的人是汉斯!