Registry.LocalMachine.CreateSubKey: неверный параметр - PullRequest
0 голосов
/ 07 апреля 2020

Можно ли создать напрямую в HKEY_LOCAL_MACHINE, кроме HARDWARE, SAM, SECURITY, SOFTWARE и т. Д. c .. с использованием C#? Я пробовал следующий код, но я получаю сообщение об ошибке:

RegistryKey key = Registry.LocalMachine.CreateSubKey("TESTFOLDER", RegistryKeyPermissionCheck.Default, RegistryOptions.None);

Состояние ошибки:

Недопустимый параметр

I я уже пытался выполнить мое приложение от имени администратора.

1 Ответ

0 голосов
/ 21 апреля 2020

Реестр содержит смесь элементов. Во многих частях реестра есть файлы, в которых они хранятся, когда операционная система не работает - они описаны в справке для Реестры реестра

Там вы увидите, что HKEY_LOCAL_MACHINE не У меня нет файла улья. Несколько ключей под ним, например Sam и Software, имеют отдельные файлы кустов. Другие, такие как Hardware нет. Это логично - HKEY_LOCAL_MACHINE\Hardware воссоздается заново каждый раз при загрузке ОС.

В свою очередь, HKEY_LOCAL_MACHINE также создается заново каждый раз, когда ОС загружается, а затем подключает подключи, некоторые из которых приходят из файлов Hive, некоторые имеют был создан.

Вы не можете создать новый подраздел в HKEY_LOCAL_MACHINE, потому что ОС не имеет места для его хранения (оно не поддерживается самим Hive) и не имеет никаких знаний для его воссоздания в следующий раз ботинки.

...