Если я открываю этот реестр и зачитываю все подразделы, он отличается от того, который показывает мой редактор реестра.
Способ, которым я открываю реестр и считываю все подразделы:
//Получить все результаты указанной строки реестра registry_key = @ "SOFTWARE Microsoft Windows CurrentVersion Uninstall"; используя (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey (registry_key )) {foreach (строка subkey_name в key.GetSubKeyNames ()) {using (RegistryKey subkey = key.OpenSubKey (subkey_name)) {Console.WriteLine (subkey.Name); }}}
Это дает мне вывод всех подключей в этом разделе реестра.
В качестве примера я уберу один:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Uninstall {FDCFD759-BA24-F0C8-FE83-43513EE6D443}
Когда я проверяю свой реестр редактор. И выполните поиск в этом примере, его нет в указанном месте, но он находится в:
HKEY_LOCAL_MACHINE SOFTWARE WOW6432Node Microsoft Windows CurrentVersion Uninstall {FDCFD759-BA24-F0C8 -FE83-43513EE6D443}
Итак, переходя к вопросу …
Отображает ли редактор реестра все подразделы?
Если есть какие-либо вопросы по моему вопросу или комментариям, я хотел бы услышать!
Он называется «Windows on Windows», и это сделано специально.
Как и Program Files
и Program Files (x86)
, клавиша WOW6432Node
особенный. Когда 32-битные процессы пытаются читать из HKEY_LOCAL_MACHINE SOFTWARE
, они вместо этого направляются в HKEY_LOCAL_MACHINE SOFTWARE WoW6432Node
, чтобы они не пытались случайно делать то, что доступно только для 64-битных процессов.
По умолчанию Regedit в 64-битной Windows machine показывает 64-битное представление реестра.
32-битные приложения, работающие в 64-битной Windows, по умолчанию видят 32-битное представление. Эти ключи находятся в разделе SOFTWARE WOW6432Node
в 64-разрядном реестре.
Информация об удалении хранится в 4 местах реестра на 64-разрядной машине: корни HKEY_CURRENT_USER
и HKEY_LOCAL_MACHINE
в 64- и 32-разрядных представлениях.
Приложения могут решать, к какому представлению они хотят получить доступ с помощью флага KEY_WOW64_64KEY
или KEY_WOW64_32KEY
при открытии ключа.
По умолчанию Regedit на 64-битной машине Windows показывает вам 64-битный вид реестра.
32-битные приложения, работающие в 64-битной Windows, по умолчанию видят 32-битное представление. Эти ключи находятся в разделе SOFTWARE WOW6432Node
в 64-разрядном реестре.
Информация об удалении хранится в 4 местах реестра на 64-разрядной машине: корни HKEY_CURRENT_USER
и HKEY_LOCAL_MACHINE
в 64- и 32-разрядных представлениях.
Приложения могут решить, к какому виду они хотят получить доступ, используя флаг KEY_WOW64_64KEY
или KEY_WOW64_32KEY
при открытии ключа.