C# 假设注册表配置单元总是相同的安全性如何?
我正在编写一个控制台应用程序,允许您与注册表交互。应用程序以字符串C# 假设注册表配置单元总是相同的安全性如何?,c#,.net,windows,registry,C#,.net,Windows,Registry,我正在编写一个控制台应用程序,允许您与注册表交互。应用程序以字符串path被设置为空开始。当用户键入ls时,我希望它列出所有注册表配置单元(因为它们当前位于本地计算机的顶层)。然而,经过一些广泛的研究,我无法找到一种方法来获取当前机器上的所有注册表配置单元。假设这些蜂箱永远在那里有多安全 HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG 如果认为它们总是存在是不安全的,我如
path
被设置为空开始。当用户键入ls
时,我希望它列出所有注册表配置单元(因为它们当前位于本地计算机的顶层)。然而,经过一些广泛的研究,我无法找到一种方法来获取当前机器上的所有注册表配置单元。假设这些蜂箱永远在那里有多安全
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
如果认为它们总是存在是不安全的,我如何动态地获取它们
(如果“配置单元”不是根级别子项的正确术语,那么很抱歉,我对处理注册表非常陌生)已记录了“标准配置单元”,因此它们不会更改
要打开密钥,应用程序必须为中的另一个密钥提供句柄
已打开的注册表。系统定义预定义的键
这些都是开放的。预定义的键有助于应用程序在中导航
注册中心,使开发允许系统运行的工具成为可能
管理员操作数据类别。添加
向登记处提供的数据应始终在
预定义的键,以便管理工具可以查找和使用新的
数据
应用程序可以使用这些键的句柄作为注册表的入口点。这些句柄对于注册表的所有实现都有效,尽管句柄的使用可能因平台而异
HKEY_CLASSES_ROOT
不是配置单元,它是其他配置单元的视图,而是一个始终打开的预定义键
请参阅上面@Eser的评论,它们也位于Microsoft.Win32.RegistryHive
枚举中
谢谢,但是有没有一种方法可以在代码中检测出蜂巢,因为我的蜂巢略有不同,这让我觉得其他人的蜂巢也可能不同?(我有
HKEY_CLASSES_ROOT
,这不是标准文档。)我更新了我的答案HKEY\U CLASSES\U ROOT
不是配置单元,它是其他配置单元组合的视图。话虽如此,它作为一个始终打开的预定义键列在第二个链接中。因此,HKEY_CLASSES\u ROOT
中的所有内容都是指向其他配置单元中其他位置的快捷方式?正确。HKEY_CLASSES_根键提供注册表视图,该视图合并了来自这两个源的信息。HKEY_CLASSES_ROOT还为为以前版本的Windows设计的应用程序提供此合并视图。如何访问Microsoft.Win32.RegistryHive?由于它们是在Microsoft.Win32.RegistryHive枚举中硬编码的,因此我可以假定它们将始终存在。。。