Понедельник, 2025-06-16

Professor VB - примеры на VB.net и C#
Меню сайта
Вход на сайт
Категории раздела
Уроки VB.net [25]
VB.net и математика [13]
Random VB [4]
VB.net - разное [7]
VB.net - Примеры программ [2]
Главная » Статьи » VB.net » Уроки VB.net

VB.net - 11 - Работа с реестром

VB.net - 11 - Работа с реестром



 

 

Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows.

Реестр содержит информацию и настройки для аппаратного обеспечения, программного обеспечения, профилей пользователей, предустановки. Большинство изменений в Панели управления, ассоциации файлов, системные политики, список установленного ПО фиксируются в реестре.

Реестр Windows был введён для упорядочения информации, хранившейся до этого во множестве INI-файлов, обеспечения единого механизма (API) записи-чтения настроек и избавления от проблем коротких имён, отсутствия разграничения прав доступа и медленного доступа к ini-файлам, хранящимся на файловой системе FAT16, имевшей серьёзные проблемы быстродействия при поиске файлов в директориях с большим их количеством. Со временем (окончательно — с появлением файловой системы NTFS) проблемы, решавшиеся реестром, исчезли, но реестр остался из-за обратной совместимости, и присутствует во всех версиях Windows, включая последнюю. Поскольку сейчас не существует реальных предпосылок для использования подобного механизма, Microsoft Windows — единственная (не считая ReactOS) операционная система из используемых сегодня, в которой используется механизм реестра операционной системы.

 

 

Мы будем использовать реестр для хранения временных данных (или настроек). По этому важно уметь записывать данные в реестр, считывать их, а так же очищать реестр от вмешательст нашей программы. 

 

В тело программы мы помещаем дополнительный модуль, его код ниже:


Option Explicit On 'Включаем проверку переменных
Module mRegedit
    Dim setRegString As Microsoft.Win32.RegistryKey 'Для записи
    Dim getRegString As Microsoft.Win32.RegistryKey 'Для чтения

    '************************************
    'ЗАПИСЬ В РЕЕСТР 

    Public Function SaveSettingString(ByVal sFolder As String, ByVal sName As String, ByVal sValue As String)
        'Записывается в ветку HKEY_LOCAL_MACHINE
        setRegString = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(sFolder)
        setRegString.SetValue(sName, sValue, Microsoft.Win32.RegistryValueKind.String)

    End Function
    '*******************************
    'ЧИТАЕМ ИЗ РЕЕСТРА

    Public Function OpenSettingString(ByVal sFolder As String, ByVal sName As String)
        On Error GoTo ErrNotKey 'Перейти к ошибке
   
    'Читаем из ветки HKEY_LOCAL_MACHINE
        getRegString = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sFolder)
        OpenSettingString = getRegString.GetValue(sName, Microsoft.Win32.RegistryValueKind.String)
        Exit Function 'Выход из процедуры
ErrNotKey:
        MsgBox("Ключ ненайден.", 16, "Error")

    End Function
    '**************************
    'УДАЛЕНИЕ ИЗ РЕЕСТРА ПОЛНОСТЬЮ

    Public Function DelSubKey(ByVal sFolder As String)
        On Error GoTo ErrNotKey 'Перейти к ошибке
   
    'Удаляется из ветки HKEY_LOCAL_MACHINE
        Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(sFolder) 
        Exit Function 'Выход из процедуры
ErrNotKey:
        MsgBox("Ключ ненайден.", 16, "Error")

    End Function
End Module


 

Теперь поместим на форму 3 кнопки и 2 текстовых поля, и напишем для них код.

 


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Создаем новый раздел с именем Test и открываем с доступом на запись
        My.Computer.Registry.CurrentUser.CreateSubKey("Test")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Записываем текст в раздел Test
        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Test", "Key", TextBox1.Text)
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ' Выводим записаный текст из раздела Test
        TextBox2.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Test", "Key", Nothing)
    End Sub

    ' Удаляем раздел Test из реестра 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ' Удаляем раздел Test из реестра
        My.Computer.Registry.CurrentUser.DeleteSubKey("Test")
    End Sub


 

Записываем значение в реестр

 

Считываем значения из реестра

 

Кроме временных данных и настроек, реестр можно использовать для записи нашей программы в автозагрузку.

Помещаем на форму 2 кнопки - для записи в реестр и удаления.

 


  ' Добавляем в автозагрузку

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
      ' Возращаем заданый раздел с доступом к нему
        Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser. _
            OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)

        ' Имя нашей программы с расширением
        Dim Имя_программы As String = IO.Path.GetFileName(Application.ExecutablePath)
     
  ' Добавляем новое значение
        Start.SetValue(Имя_программы, Application.ExecutablePath)
    End Sub

 

    ' Убираем из автозагрузки
    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
            ' Возращаем заданый раздел с доступом к нему
        Dim Start As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser. _
            OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
 
      ' Имя нашей программы с расширением
        Dim Имя_программы As String = IO.Path.GetFileName(Application.ExecutablePath)
   
    ' Удаляем наше ранее созданое значение
        Start.DeleteValue(Имя_программы)
    End Sub


 

 

 

Смотреть видео

В начало

 

 



 

Категория: Уроки VB.net | Добавил: ProfessorVB (2015-12-08)
Просмотров: 3403 | Теги: модуль для работы с реестром, реестр, создание записи в реестре, Автозагрузка, удаление записи из реестра, Vb.net, урок, вирус | Рейтинг: 5.0/5
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    урок C# си шарп видео hello world MenuStrip Генератор имен Switch дроби решебник Алгебра системы уравнения геометрия Vb.net генератор уроки математика программа условия Math массив элементов видеоуроки добавление записи в xml анекдот поиск создать XML удалить из xml калькулятор НОД нок время дата Деструкторы конструкторы тест сокращение дробей десятичные дроби тренажер английский развитие мнемоника иностранные слова random рандом professorvb OpenFileDialog Timer mindgames цикл словарь база пароль слова cos sin комплексные числа вирус массив классы массивы многомерные Break Continue do for forEach While Обработка событий rgb задать цвет XML база данных xml количество элементов xml поиск значений xml редактирование xml создание soft AntiCenz fri-gate google pirat proxy tor запрещенные сайты Open save RichTextBox TopMost DateTimePicker календарь количество дней между датами перемешивание массива Анаграммы Меморина Ребусы Рифмоплет скорочтение Сравнение дробей использование
    Copyright ProfessorVB © 2025