Я создал папку под
{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: Здесь изображение, чтобы сделать его немного понятным.
пытаться:
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-разрядная версия. Существуют также общие ключи реестра, которые не перенаправлены или не отражены.