Прочитать данные из Ключа в Реестре и разобрать их

1

Я создал папку под

{HKEY_LOCAL_MACHINE\Software\MyKeys}

Папка MyKeys содержит два SubKeys

MyKeys ==> MF Эта папка содержит строку Weekday с данными Mon, Tue, Wed, Thu, Fri, Sat, Sun

MyKeys ==> TF Эта папка содержит строку Weekday с данными Tue, Wed, Thu, Fri, Sat

То, что я пытаюсь выполнить, - это прочитать данные из первого ключа и проанализировать его и сохранить в переменной, чтобы впоследствии я мог использовать его в своем консольном приложении С#, чтобы узнать, находится ли текущий день в одном из элементов этого реестр.

Вот как я пытаюсь добраться до этого места.

RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("Software\\MyKeys");

Тем не менее, registerKey имеет значение null. Но если я изменю местоположение

RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("Software\\Intel");

Он будет читать это местоположение.

Любые предложения о том, как я могу это сделать? Есть ли специальное разрешение, необходимое для доступа к этому местоположению из приложений?

EDIT: Здесь изображение, чтобы сделать его немного понятным.

Изображение 174551

Теги:
registry

1 ответ

1
Лучший ответ

пытаться:

RegistryKey rk = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32).OpenSubKey("Software\\MyKeys");

string filePath = (string)rk.GetValue("Weekday");

Ключи реестра хранятся в другом месте на 64-битной машине. хотя они видны в этом месте, если вы используете Regedit, они действительно расположены в другом месте

РЕДАКТИРОВАТЬ

В 64-битной Windows части записей реестра хранятся отдельно для 32-разрядных приложений и 64-разрядных приложений и отображаются в отдельные логические представления реестра с использованием редиректора реестра и отражения реестра, поскольку 64-разрядная версия приложения может использовать различные ключи и значения реестра, чем 32-разрядная версия. Существуют также общие ключи реестра, которые не перенаправлены или не отражены.

32-разрядные и 64-разрядные данные приложения в реестре

  • 0
    Я не знал этого. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню