Понедельник, 2026-07-20

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)
Просмотров: 3483 | Теги: модуль для работы с реестром, реестр, создание записи в реестре, Автозагрузка, удаление записи из реестра, Vb.net, урок, вирус | Рейтинг: 5.0/5
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

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