Страница: 1 |
Страница: 1 |
Вопрос: Поиск в реестре
Добавлено: 03.04.08 02:49
Автор вопроса: Inc
Всем привет
Подскажите пожалуйста с чего начать, задача с виду простая, а на деле не могу сообразить,нужно "Просканировать" ветку HKEY_LOCAL_MACHINE т.е все её подключи и т.д, до конца, аналог поиска в RegEdit, а во время этого процесса будет простой if else, остальное соображу наверно :) вообщем подскажите с чего начать, может быть кто то уже писал что то подобное, спасибо
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 03.04.08 03:10
Microsoft.Win32.RegistryKey.GetSubKeyNames
Microsoft.Win32.RegistryKey.GetValueNames
Номер ответа: 2
Автор ответа:
Inc
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 03.04.08 15:14
Это то я знаю, создать, считать данные, удалить я могу, только как создать цикл или функцию которая будет вызывать сама себя пока не просмотрит все ветки реестра, вот тут я не могу сообразить
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 04.04.08 00:19
Рекурсия
Номер ответа: 4
Автор ответа:
Inc
Вопросов: 1
Ответов: 2
Профиль | | #4
Добавлено: 04.04.08 02:43
И про рекурсию читал и слышал, я всё в теории прекрасно понимаю но на практики не знаю как начать
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 04.04.08 07:00
Вывод дерева ключей раздела реестра HKCU:
{
static void enumerate(RegistryKey rk, int deep)
{
foreach (string s in rk.GetSubKeyNames())
{
for (int i = 0; i < deep; i++) Console.Write(" "
Console.WriteLine(s);
try
{
RegistryKey rk2 = rk.OpenSubKey(s);
enumerate(rk2, deep + 1);
}
catch (Exception)
{
}
}
}
static void Main(string[] args)
{
RegistryKey rk = Registry.CurrentUser;
enumerate(rk, 0);
}
}