除了可以使用C#在硬件,SAM,安全性,软件等之外,还可以直接在HKEY_LOCAL_MACHINE下创建。我尝试了以下代码,但出现错误:
RegistryKey key = Registry.LocalMachine.CreateSubKey("TESTFOLDER", RegistryKeyPermissionCheck.Default, RegistryOptions.None);
错误状态:
参数无效
我已经尝试过以管理员身份执行我的应用程序。
注册表包含各种元素。注册表的许多部分都有文件,这些文件在操作系统不运行时会存储它们-在Registry Hives
的帮助下对此进行了描述[您会看到HKEY_LOCAL_MACHINE
没有配置单元文件。它下面的几个键,例如Sam
和Software
具有单独的配置文件。其他的,例如Hardware
则没有。这是合乎逻辑的-每次操作系统启动时都会重新创建HKEY_LOCAL_MACHINE\Hardware
。
反过来,每次操作系统引导时也会重新创建HKEY_LOCAL_MACHINE
,然后附加子项,其中一些来自Hive文件,一些已经创建。
您无法在HKEY_LOCAL_MACHINE
下创建新的子项,因为操作系统没有任何地方可以存储它(它不受Hive本身的支持),也不具有下次启动时重新创建它的知识。