Чтение автономного файла реестра Windows

182
08 февраля 2019, 18:40

Как открыть reg-файлы SYSTEM и SAM для чтения, если они были скопированы с другого ПК, средствами C#?

Как прочитать информацию из них, например, добраться до (файл)SOFWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards?

Answer 1

Файл автономного реестра- это текстовой файл с раширением *.reg=> можно его прочитать, как текст и распарсить. Есть и другой формат HIVE-формат, который не является текстовым представлением и читается иначе, но с ним вообще не знаком.

Обычный файла-реестра(не HIVE) имеет довольно простую структуру, где [] пишется ветка реестра, а под ней словарь ключ-значение. Если верить гуглу, то он совместим в форматом *.INI.

Например, вот так выглядит мой реестр:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip]
"Path"="C:\\Program Files (x86)\\7-Zip\\"
"Path64"="C:\\Program Files (x86)\\7-Zip\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\ABBYY]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABBYY\FineReader]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABBYY\FineReader\11.00]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABBYY\FineReader\12.00]
[HKEY_LOCAL_MACHINE\SOFTWARE\ABBYY\FineReader\12.00\Integration]
"SupportedOpenImageFormat"="bmp,dib,rle,dcx,djvu,djv,gif,jb2,jbig2,jp2,j2k,jpf,jpx,jpc,jpg,jpeg,pcx,pdf,png,tif,tiff,xps,wdp,wmp"
[HKEY_LOCAL_MACHINE\SOFTWARE\Adobe]
[HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Distiller]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Distiller\DC]
@=""
"InstallPath"="C:\\Program Files (x86)\\Adobe\\Acrobat DC\\Acrobat"
"RunFromLocalDisk"=dword:00000001
"JobOptions"="Standard"
"JobOptionsFolder"="C:\\ProgramData\\Adobe\\Adobe PDF\\Settings\\"
"DefaultPDFOutput"="Documents\\*.pdf"

Вот тут собственно говорится о том, что готового ничего в .NET нету и можно попробовать воспользовать парсером INI формата.

Вот какая-то сторонняя либа есть.

Answer 2
using (RegistryKey registry = Registry.LocalMachine.OpenSubKey(keyPath))
{
    //читаешь keyPath
}

на каком диске находится сам реестр не важно.

READ ALSO
C# ORA-12154 TNS: невозможно разрешить имя службы

C# ORA-12154 TNS: невозможно разрешить имя службы

Отказал ждиск на моем ПК(где до меня была установлена Visual Studio 2017 Professional (Версия 15

204
sealed, virtual, невиртуальные методы в C# и производительность

sealed, virtual, невиртуальные методы в C# и производительность

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

178
Как можно эффективно найти опечатки в словах?

Как можно эффективно найти опечатки в словах?

Задача: Есть предложения и нужно получить список похожих слов

176
Unity3d Реализация Мультитача

Unity3d Реализация Мультитача

У меня есть в GUI три 2D кнопки - влево, вправо, вверхИ мне необходимо реализовать одновременное нажатие кнопок

181