В секции HKEY_CURRENT_USER мы можем обнаружить данные о текущих постоянных и временных сетевых соединениях — эта информация хранится в подсекциях Network\Persistent и Network\Recent соответственно. В секции HKEY_LOCAL_MACHINE мы обнаружим информацию о зарегистрированном пользователе — его имени, первичном сетевом провайдере, о том, выполнялась ли проверка регистрации сервером, и т.п. Информацию о сетевом провайдере вы найдете в секции HKEY_LOCAL_MACHINE, подсекция Enum\Network. Чтобы не пользоваться утилитой RegEdit, с помощью которой легко испортить содержимое реестра, я написал две небольшие программы на Delphi, текст которых приводится ниже. Первая программа, названная RegNet, выводит информацию из секций HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Вторая программа — NetEnum — отображает содержимое подсекции HKEY_LOCAL_MACHINE Enum\Network. В программе RegNet используются мемо-поле, список, несколько строчных редакторов и две кнопки. При запуске программы информация из секции HKEY_LOCAL_MACHINE\Network\Logon отображается в мемо-поле. При нажатии кнопки Persistent вы получаете список постоянных соединений — активизация каждого элемента списка приводит к появлению в строчных редакторах соответствующей информации. Нажатие кнопки Recent приводит к появлению списка недавно установленных соединений; активизация каждого элемента списка приводит к отображению соответствующей информации. Программа NetEnum активно работает с реестром, извлекая из него древовидную структуру, которая отображается компонентом TreeView. Здесь нет каких-либо хитростей — вся работа выполняется через свойства и методы класса TRegistry. Единственное, что стоит отметить, — это то, как считываются данные для выбранного ключа. Мы используем метод GetValueNames для получения названий всех ключей. Затем в цикле с помощью метода GetDataInfo узнаем тип данных, хранимых в том или ином ключе, и для данных типа String вызываем метод ReadString, который возвращает нам соответствующее значение. Я решил отказаться от отображения данных, хранимых в формате, отличном от String, так как для большинства пользователей они не имеют особого смысла.
|