Здравствуйте, есть проблема с доступом к ключу, который создан через * .reg файл. Все ключи, что можно просмотреть через regedit, метод GetSubKeyNames() возвращает, исключением из правила является мой.
Внимание, вопрос: "как сделать так, чтобы метод GetSubKeyNames() вернул экземпляр RegistryKey?".
Привожу последовательность выполненных действий:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID{1176EC70-36AD-48B8-8B3B-4D5FB64A4639}] @="MyProgID"
[HKEY_CLASSES_ROOT\CLSID{1176EC70-36AD-48B8-8B3B-4D5FB64A4639}\InprocServer32] @="C:\Users\UserName\Desktop\SomeFolder\Some.dll"
Сохранил, переименовал из * .txt в * .reg
(Открываю консоль)
cd /Users/UserName/Desktop/SomeFolder
thisFile.reg
Ключ и его значение присутствуют в реестре. Отлично!
Получаю список имен хранящихся в данной ветви реестра
var rk = Registry.ClassesRoot.OpenSubKey("CLSID");
rk.OpenSubKey("{1176EC70-36AD-48B8-8B3B-4D5FB64A4639}"); //вернет null
//правильность введенного имени ключа можете не проверять, если что :)
В результате метод OpenSubKey(string str) выбросил null, намекнув, что данного ключа нет, хотя, как было показано ранее, он есть!
ЗЫ: Права доступа, открытие ключа для записи и установка прав через метод SetAccessControl(RegistrySecurity rs) не помогают. Есть предположение, что создание реестрового файла было выполнено не правильно. Очень надеюсь на вашу помощь.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники