Как отобразить раздел (ы) реестра в текстовом поле C # - PullRequest
2 голосов
/ 02 апреля 2011

У меня проблемы с отображением всех разделов реестра в разделе автозагрузки для Windows. Я хочу отобразить все ключи реестра, которые сообщают программам о запуске в текстовом поле. Мне удалось создать список каталогов для HKEY_LOCAL_MACHINE, но мне не удалось сузить его до ключей, перечисленных в каталоге HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run. Вот мой код:

TreeNode localMachineNode = new TreeNode(Registry.LocalMachine.Name);
string[] localMachineSubKeys = Registry.LocalMachine.GetSubKeyNames();
foreach (string key in localMachineSubKeys)
{
    TreeNode node = new TreeNode(key, 0, 1);
}

Если есть лучший способ сделать это, я хотел бы услышать об этом. Имейте в виду, это только часть моего кода.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

Используйте OpenSubKey , чтобы открыть ключ, используя путь:

var runs = Registry.LocalMachine.OpenSubKey(
   @"Software\Microsoft\Windows\CurrentVersion\Run");

var valueNames = runs.GetValueNames();

var values = new List<object>();
foreach (var valueName in valueNames)
{
    values.Add(runs.GetValue(valueName));
}
0 голосов
/ 02 апреля 2011

Это то, что вы ищете?

var keys = Microsoft.Win32.Registry.LocalMachine
    .OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run")
    .GetSubKeyNames();
...