Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Поиск в реестре Добавлено: 03.04.08 02:49  

Автор вопроса:  Inc
Всем привет
Подскажите пожалуйста с чего начать, задача с виду простая, а на деле не могу сообразить,нужно "Просканировать" ветку HKEY_LOCAL_MACHINE т.е все её подключи и т.д, до конца, аналог поиска в RegEdit, а во время этого процесса будет простой if else, остальное соображу наверно :) вообщем подскажите с чего начать, может быть кто то уже писал что то подобное, спасибо

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #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-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 04.04.08 00:19
Рекурсия

Ответить

Номер ответа: 4
Автор ответа:
 Inc



Вопросов: 1
Ответов: 2
 Профиль | | #4 Добавлено: 04.04.08 02:43
И про рекурсию читал и слышал, я всё в теории прекрасно понимаю но на практики не знаю как начать

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 04.04.08 07:00
Вывод дерева ключей раздела реестра HKCU:

    class Program
    {
        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);
        }
    }

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам