OpenSubKey() 注册表项的“绝对路径”?

Posted

技术标签:

【中文标题】OpenSubKey() 注册表项的“绝对路径”?【英文标题】:OpenSubKey() Registry key's “Absolute Path”? 【发布时间】:2021-12-29 06:33:24 【问题描述】:

使用 Microsoft.Win32.RegistryKey 需要注册表路径的 C# 函数,例如 OpenSubKey(),使用类似路径

@"SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"

生成错误声明“需要绝对路径信息。”

创建所需绝对路径的语法是什么?

【问题讨论】:

您从哪里获得RegistryKey?显示您正在使用的准确、相关的代码会很有帮助。 【参考方案1】:

注册表有几个根键,所有子键都与其中一个相关。

为了使用 OpenSubKey 方法,您必须拥有 RegistryKey 方法的实例。要获取 RegistryKey 的实例,请使用 Registry 类的静态成员之一。

例如,如果您想要在 Regedit 中看到的密钥 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet,则必须以 Registry.LocalMachine 开头。

RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet");
... = rk.GetValue(...);

如果您已经有密钥,yourkey.Name 是密钥的路径。

【讨论】:

以上是关于OpenSubKey() 注册表项的“绝对路径”?的主要内容,如果未能解决你的问题,请参考以下文章

注册表键值明明存在OpenSubKey始终返回null,解决方案

我如何获得注册密钥的真实路径?

读取注册表

在C#中列出ODBC数据源

C#清除SQL挂起

winform调用浏览器