Как создать раздел реестра типа REG_NONE?

11

Информация об ассоциациях файлов хранится HKLM\SOFTWARE\Classesи в HKCU\SOFTWARE\Classesветках реестра Windows (среди прочих). Каждая запись может иметь OpenWithProgIDsключ, который добавляет программы, названные в своих значениях, в список программ, доступных из элемента Открыть с помощью в контекстном меню. Многие из этих ключей имеют REG_NONEтип. Однако regedit не позволяет создавать ключи этого типа - этот тип отсутствует в списке типов ключей, доступных в разделе Новая запись контекстного меню.

Как я могу создать ключ реестра типа, REG_NONEчтобы добавить новую программу в список или воссоздать ранее удаленный ключ?

Петр Доброгост
источник
2
Вы можете сделать это с помощью метода Registry.SetValue в .net: msdn.microsoft.com/en-us/library/3dwk5axy.aspx Объяснение типов здесь: msdn.microsoft.com/en-us/library/...
MaQleod
Возможно, будет лучше, если вы объясните, как вам нужно создать ключ или почему, этот вопрос, скорее всего, будет закрыт как неконструктивный, поскольку он не ставит вопрос о проблеме и не задает какие-либо условия или что-либо, что вы уже пробовали. Трудно дать ответ, когда не задан реальный вопрос.
MaQleod
Как @MaQleodmentioned, пожалуйста, будьте конкретны в своем вопросе и добавьте еще некоторые детали. Флаг для самораскрытия когда - то сделали
Sathyajith Бхат
5
Я не уверен, почему кто-то может подумать, что этот вопрос недостаточно конкретен. И есть много хороших вопросов о Super User, которые не имеют дело с конкретной проблемой пользователя, они просто задают вопрос. Некоторые даже были выделены как главные вопросы. Как этот .
Ланс Робертс
@Lance Это яблоки и апельсины. Я согласен открыть, хотя.
slhck

Ответы:

11

Мне также нужно было создать ключ REG_NONE в HKCR.

Используя regedit, я нашел существующую файловую ассоциацию в HKCR, которая имела REG_NONEключ в своей ветви OpenWithProgIDs (например HKCR\.mp3\OpenWithProgIDs). Я экспортировал этот реестр в .regфайл.

Затем я использовал блокнот для редактирования экспортированного файла и изменил ветвь так, чтобы она соответствовала тому месту, где я хотел получить REG_NONEключ. Я удалил все остальные ключи, кроме одного ключа REG_NONE, который хотел. Если вам нужно переименовать ключ REG_NONE, сделайте то же самое.

Импортируйте файл обратно в реестр, и он добавит новое значение ключа как REG_NONE.

В .regфайл выглядит следующим образом :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\..etc..\keyname]
@=hex(0):

Измените ..etc..\keynameфактическое имя ключа. @=hex(0):это линия, которая создает REG_NONEэлемент.

Дэн
источник