Воскресенье, 2025-02-02

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

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    Видео Switch массивы уравнения геометрия continue forEach while Обработка событий задать цвет C# math Vb.net xml количество элементов xml поиск значений математика видеоуроки Soft системы Google pirat Proxy tor НОД нок добавление записи в xml поиск Уроки генератор hello world время деструкторы конструкторы дроби калькулятор десятичные дроби решебник сокращение дробей си шарп мнемоника тренажер random количество дней между датами professorvb дата Урок mindgames алгебра многомерные слова словарь Пароль cos SIN база timer рандом Цикл Break DO for RGB условия массив элементов xml редактирование xml создание вирус MenuStrip AntiCenz fri-gate запрещенные сайты база данных Open RichTextBox XML удалить из xml save TopMost анекдот создать XML Классы Тест OpenFileDialog английский развитие иностранные слова DateTimePicker календарь массив перемешивание массива Анаграммы Рифмоплет Сравнение дробей Меморина скорочтение Использование ребусы комплексные числа программа генератор имен
    Copyright ProfessorVB © 2025