Работа с реестром средствами visual basic


Содержание

Работа с реестром средствами visual basic

Прочитав первую статью, вы узнали, что такое реестр и какие функции предоставляет Visual Basic для работы с ним. И вы уже знаете, что VB позволяет работать только с веткой HKEY_CURRENT_USER/ Software/VB and VBA Program Setting и только со строковыми ключами. Чтобы работать с другими ветвями и типами ключей, можно воспользоваться функциями API.
Но помните! Если ваша программа хранит и меняет в реестре только собственные настройки, то незачем использовать API, стандартных функций VB вам хватит вполне.

WinAPI предоставляет очень большое количество функций для работы с реестром, поэтому будут рассмотрены только основные:

Константы, которые будут нужны:

Const REG_SZ As Long = 1
Const REG_DWORD As Long = 4

Const HKEY_ > Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006

Const KEY_ALL_ACCESS = &H3F

nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean

При использовании примеров из статьи, все перечисленные выше константы и структуры должны быть объявлены.

Операции с ключами:

RegOpenKeyEx — Функция открывает существующий ключ реестра, а точнее определяет его манипулятор.

Declare Function RegOpenKeyEx Lib «advapi32.dll» Alias «RegOpenKeyExA» (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

hKey — имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey — имя открываемого ключа (например, «MyProgram/Options»)
phkResult — заполняется манипулятором открытого ключа

Dim Result As Long

RegOpenKeyEx HKEY_CLASSES_ROOT, «MyProgram/Options», 0, KEY_ALL_ACCESS, Result

MsgBox Result

«// В этом примере выводится манипулятор ключа HKEY_CLASSES_ROOT/MyProgram/Options

RegCloseKey — Функция закрывает ключ системного реестра.

Declare Function RegCloseKey Lib «advapi32.dll» Alias «RegCloseKey» (ByVal hKey As Long) As Long

hKey — манипулятор закрываемого ключа

Пример:

Dim Result As Long

RegOpenKeyEx HKEY_ > «// Открытие ключа
RegCloseKey Result «// Закрытие ключа

RegCreateKeyEx — Функция для создания нового ключа. Если ключ существует, функция открывает его.

Declare Function RegCreateKeyEx Lib «advapi32.dll» Alias «RegCreateKeyExA» (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

hKey — имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey — имя создаваемого подключа (например, «MyProgram/Options»)

Dim SA As SECURITY_ATTRIBUTES
Dim Result As Long
RegCreateKeyEx HKEY_CURRENT_USER, «MyProgram/Options», 0, vbNullString, 0, KEY_ALL_ACCESS, SA, _ Result, &H1

RegDeleteKey — Функция удаляет указанный ключ

Declare Function RegDeleteKey Lib «advapi32.dll» Alias «RegDeleteKeyA» (ByVal hKey As Long, ByVal lpSubKey As String) As Long

hKey — имя стандартного ключа
lpSubKey — имя удаляемого подключа. В Win9x/Me все подключи указанного подключа также удаляются. В WinNT подключ не должен содержать других подключей.


RegDeleteKey HKEY_CURRENT_USER, «MyProgram/Options»

Операции с параметрами:

RegSetValueEx — Функция задаёт значение и тип параметра, находящегося в заданном ключе.

Declare Function RegSetValueEx Lib «advapi32.dll» Alias «RegSetValueExA» (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

hKey — манипулятор ключа
lpValueName — имя параметра
dwType — тип ключа
lpData — новое значение

Dim Result As Long
Dim Retval As Long

«// Находим манипулятор нужного ключа
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, «MyProgram/Options», 0, KEY_ALL_ACCESS, Result)

«// Числовому параметру DWordValue присваивается значение 22
RegSetValueEx Result, «DWordValue», 0, REG_DWORD, 22, 4

«// Строковому параметру StringValue присваивается значение «Реестр»
RegSetValueEx Result, «StringValue», 0, REG_SZ, ByVal «Реестр», Len(«Реестр»)

RegCloseKey Result «// Закрытие ключа

RegDeleteV alue — Функция удаляет заданный параметр

Declare Function RegDeleteValue Lib «advapi32.dll» Alias «RegDeleteValueA» (ByVal hKey As Long, ByVal lpValueName As String) As Long

hKey — манипулятор ключа
lpValueName — имя удаляемого параметра

Dim Result As Long

«// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, «MyProgram/Options», 0, KEY_ALL_ACCESS, Result

«// Удаляем параметр с именем StringValue
RegDeleteValue Result, «StringValue»

RegCloseKey Result «// Закрытие ключа

RegQueryValueEx — Функция считывает значения параметра

Declare Function RegQueryValueEx Lib «advapi32.dll» Alias «RegQueryValueExA» (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

hKey — манипулятор ключа
lpValueName — имя читаемого параметра
lpData — заполняется значением заданного параметра

Dim Result As Long
Dim DWResult As Long
Dim STResult As String

«// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, «MyProgram/Options», 0, KEY_ALL_ACCESS, Result

«// Считываем значения числового параметра с именем DWordValue
RegQueryValueEx Result, «DWordValue», 0, 0, DWResult, 4

«// Считываем значения строкового параметра с именем StringValue
RegQueryValueEx Result, «StringValue», 0, 0, ByVal STResult, Len(STResult)

RegCloseKey Result «// Закрытие ключа

«// Выводим значение параметров

MsgBox DWResult «// Числовое
MsgBox STResult «// Строковое


В этой статье были рассмотрены основные средства, которые предоставляет WinAPI для работы с реестром. Теперь вы сможете использовать возможности реестра в полную силу.

Работа с реестром средствами visual basic

В этой статье объясняется, как в приложении Visual Basic получить доступ к реестру на удалённой машине с использованием API функций. Данная технология работает в операционных системах Windows XP, Windows 2000, или Windows NT 4.0.

Замечание : Для того, чтобы получить доступ к реестру в этих ОС, необходимо запустить приложение с правами на чтение реестра.

Создание демонстрационного приложения

  1. Запустите Visual Basic 6.0, и создайте стандартный проект EXE.

Кликните правой кнопкой мыши по форме, а затем по View Code в меню Shortcut . Добавьте следующее выражение в начало кода:

Объявите константы, чтобы использовать их для доступа к реестру:

Так же нам потребуется объявить следующие функции работы с реестром:

Ещё нам потребуется глобальная переменная:

Добавьте следующий код в обработчик события Form_Load. Этот код вызывает функцию RegConnectRegistry для присоединения к удалённому реестру. Замените параметр \\RemoteMachineName на имя компьютера, к реестру которого хотите получить доступ:

Следующий код нужно добавить в обработчик события Form_Unload:

В дизайнере формы (Form Designer) добавьте на форму элемент управления Command . Поумолчанию ему будет присвоено имя Command1 .

Чтобы создать обработчик события для кнопки сделайте двойной клик по Command1 . И добавьте следующий код в функцию обработчика:

Проверка

  1. Для компиляции и запуска проекта нажмите F5.

Появившееся диалоговое окошечко свидетельствует о том, что подключение к удалённому реестру прошло успешно. Нажмите OK .


Появится главная форма приложения.

Кликните по Command1 . Будет показано значение, которое хранится в удалённом реестре по следующему адресу:

Работа с реестром средствами visual basic

Работа с реестром

Работа с реестром — это одна из наиболее частых проблем, возникающих у программиста не только на Visual Basic, но и на других языках. В стандартных функциях Visual Basic нет функций для работы с реестром, но с помощью Windows API это можно устроить. Приведённые ниже примеры используют модуль registry.bas, который содержит объявления API ф-ций, констант и готовых процедур, с которыми очень удобно работать. Модуль registry.bas можно скачать.

Для чтения строкового параметра используйте ф-цию GetRegString

Dim a As String
a = GetRegString(HKEY_LOCAL_MACHINE, _
«Software\Microsoft\DirectX», «Version»)
Form1.Caption = a

Для чтения параметра DWORD используйте ф-цию GetRegDWord

Dim a As Long
a = GetRegDWord(HKEY_LOCAL_MACHINE, _
«Software\Microsoft\Internet Explorer\AboutURLs», «Home»)
Form1.Caption = a

Для получения списка ключей в ключе используйте GetRegKeys

Например, вам необходимо получить список ключей в подключе Software. Ф-ция GetRegKeys — возвращает значение типа Variant, содержащее одномерный массив со списком ключей. Поместите на форму список и введите примерно такой код:

Dim a As Variant
Dim c As Long
a = GetRegKeys(HKEY_LOCAL_MACHINE, «Software»)
For c = 0 To UBound (a)
List1.AddItem a(c)
Next c

Для получения списка параметров в ключе используйте GetRegKeyValues

Эта ф-ция как и предыдущая возвращает Variant — массив, но на этот раз 2-х мерный:

Dim a As Variant
Dim c As Long
a = GetRegKeyValues(HKEY_LOCAL_MACHINE, _
«Software\Microsoft\Windows\CurrentVersion\Run»)
For c = 1 To UBound (a)
List1.AddItem a(c, 0)
List1.AddItem a(c, 1)
List1.AddItem «» ‘Добавляем отступ для удобства
Next c

Здесь в массиве вторая размерность всегда равна 1. Т.е. 0 — отвечает за список параметров, а 1 за список их значений. Ну в общем запустите пример и сами поймёте.

Для записи строкового параметра используется SetRegString

SetRegString HKEY_LOCAL_MACHINE, _
«Software\XYZ», «MyProgram», «Options»

Если ключ или параметр не были созданы, то они будут созданы. Если ключ или параметр уже существуют, то новые значения запишутся поверх старых.

Для записи параметра типа DWORD используется SetRegDWord

SetRegDWord HKEY_LOCAL_MACHINE, _
«Software\XYZ», «MyProgram», «444»

Для удаления ключа из реестра используется ф-ция DeleteRegKey

DeleteRegKey HKEY_LOCAL_MACHINE, «Software», «XYZ», True

Второй параметр — Ключ-родитель

Третий параметр — True — если требуется подтверждение на удаление или False — если подтверждение не требуется.


Для удаления параметра из реестра используется ф-ция DeleteRegValue

DeleteRegValue HKEY_LOCAL_MACHINE,_
«Software\Microsoft\Internet Explorer\AboutURLs», «mozilla», False

Желаю приятной работы с реестром Windows! :)

На главную страничку учебника Visual Basic

Материалы, которые находятся на этой страничке, любезно предоставлены Игорем Ивановым

VB 6 Помогите разобраться в работе с реестром на vb6

Кирилл

Что это все значит на человеческом языке:

Dragokas

Very kind Developer

Кирилл

Кирилл

glax24

Кирилл

А вот тут не пойму:

Пробовал разными методами,и напрямую тоже,и через reg.exe почему то выдает ошибку скрипта

Прав не хватает?

glax24

Dragokas

Very kind Developer

Кирилл

Кирилл

А вот так не работает:

Dragokas

Very kind Developer

Вообще-то записывать данные в раздел HKCR — это не очень хороший тон.
HKCR как ты знаешь — виртуальный раздел.
Откуда реестру знать, куда записывать в HKLM или в HKCU. Правильно — делать запись напрямую в нужный улей:
— HKEY_CURRENT_USER\Software\Classes
— HKEY_LOCAL_MACHINE\SOFTWARE\Classes (сюда естественно потребуются повышенные привилегии при запуске скрипта).


На счет метода RegDelete — обрати внимание, он не поддерживает удаление разделов вместе с подразделами.
Нужно сначала удалить все вложенные, а уж затем корневой.Кстати, если ты запускаешь скрипт напрямую из AkelPad-a по Ctrl+F5,
или из программы на Visual Basic 6,
то они работают от имени 32-разрядного процесса.

В 64-разрядной системе, запросы к разделам, имеющим разную битность, будут переадресовываться.
Для VB6 отключить переадресацию можно только используя Windows API функции и флаг KEY_WOW64_64KEY

Пример записи значения в 64-битную или 32-битную ветку реестра на выбор

Visual Basic и Системный Реестр Windows (исходники)

А теперь приступим к работе.

Запись значений с помощью оператора SaveSetting

Дважды щелкните на командной кнопке SaveSetting и в раскрывшемся окне введите следующий код:

Private Sub Command1_Click()
SaveSetting App.Title, «PortSettings», «Connect using», «COM1»
End Sub

Запустите программу на выполнение и нажмите на кнопку SaveSetting , потом переключитесь на окно редактора Системного Реестра. Откройте папку VB and VBA Program Setting и там Вы увидите вновь созданную папку MYREG , а в ней подраздел с именем PortSettings . Открыв его, в левом окне редактора, Вы прочтете запись которую только что создали — Connect using «COM1» .

***Если Вы правильно выполнили все что написано, но ничего не увидели, не волнуйтесь. Нажмите клавишу F5 (Refresh) и перед вами появится искомая запись.

Теперь расмотрим по-подробнее, что Вы написали в окне кода. Синтаксис оператора SaveSetting следующий:
SaveSetting VBKeyName, Section, Key, Setting , где:

  • SaveSetting — имя самого оператора;
  • VBKeyName — строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting . В нашем случае онo будет носить имя нашей программы — MYREG , т.к. мы использовали свойство объекта App.Title ;
  • Section — строковое значение, которое является именем внутреннего подраздела VBKeyName . В нашем случае оно носит имя PortSettings ;
  • Key — строковое значение, которое представляет имя параметра в созданном подразделе PortSettings.В подразделе может быть много параметров.
  • Setting — строковое значение, которое Вы хотите присвоить данному параметру. В нашем случае параметру Connect using приваиваем значение COM1;

Чтение значений с помощью функции GetSetting()

***При выполнении нижеследующих действий объявите в разделе Declaration формы переменные CrtMsg As String, MySet As Variant

Чтобы получить значение определенного параметра, нужно использовать функцию GetSetting() .Дважды щелкните на командной кнопке GetSetting и в раскрывшемся окне введите следующий код:

Private Sub Command2_Click()
MySet = GetSetting(App.Title, «PortSettings», «Connect using», CrtMsg)
Debug.Print MySet
End Sub

Запустите программу на выполнение и намите на кнопку GetSetting . В окне Immediate Вы увидете введенное ранее (оператором SaveSetting ) значение — COM1 .
Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора GetSetting следующий:
MySet = GetSetting ( VBKeyName, Section, Key [, Default ] )

  • MySet — строка для хранения возвращаемого функцией GetSetting значения;
  • GetSetting — имя самой функции;
  • VBKeyName — строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting . Мы используем свойство объекта App.Title , т.к. хотим прочесть информацию из созданного нашей программой раздела ;
  • Section — строковое значение, которое является именем внутреннего подраздела VBKeyName . В нашем случае он носит имя PortSettings ;
  • Key — строковое значение, которое представляет имя параметра в созданном подразделе PortSettings .В подразделе может быть много параметров и по-этому, мы указываем на желаемое — Connect using ;
    Default — необязательный аргумент, представляющий строковое значение, которое будет возвращено функцией в случае ошибки (если такого параметра нет). Функция возвращает строковое значение, присвоенное аргументу Default . К примеру CrtMsg = «Такого параметра не существует.» .

Чтение значений с помощью функции GetAllSettings()

***Предварительно добавте следующий код к имеющемуся коду командной кнопки
SaveSetting:
SaveSetting App.Title, «PortSettings», «Data bits», «8»
SaveSetting App.Title, «PortSettings», «Parity», «None»
SaveSetting App.Title, «PortSettings», «Stop bits», «1»
SaveSetting App.Title, «PortSettings», «Flow control», «None»
Произведите операцию записи данных в Системный Реестр.

Для получения из реестра массива, содержащего все значения параметров из определенного подраздела (например, PortSettings ) применяется функция GetAllSettings() . Для этого дважды щелкните на командной кнопке GetAllSettings и в раскрывшемся окне введите следующий код:

Private Sub Command3_Click()
Dim intSettings As Integer
MySet = GetAllSettings(App.Title, «PortSettings»)
For intSettings = LBound(MySet, 1) To UBound(MySet, 1)
Debug.Print MySet(intSettings, 0), MySet(intSettings, 1)
Next intSettings
End Sub

Запустите программу на выполнение и нажмите на кнопку GetAllSettings . В окне Immediate Вы увидете введенные ранее (оператором SaveSetting ) значения:

Connect using COM1
Bits per second 2400
Data bits 8
Parity None
Stop bits 1
Flow control None

Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора GetAllSetting следующий:

MySet = GetAllSettings ( VBKeyName, Section)

  • MySet — возвращаемый функцией массив значений, он должен быть типа Variant
  • GetSetting — имя самой функции;
  • VBKeyName — строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting . Мы используем свойство объекта App.Title , т.к. хотим прочесть информацию из созданного нашей программой раздела ;
  • Section — строковое значение, которое является именем внутреннего подраздела VBKeyName . В нашем случае он носит имя PortSettings ;


Остальные операторы помогают обработать массив значений и получить информацию в удобном виде.

Удаление раздела параметров с помощью оператора DeleteSetting

Вы уже создали целый массив параметров! А что делать если он больше ненужен? Для удаления параметров применяется оператор DeleteSetting . Дважды щелкните на командной кнопке DeleteSetting и в раскрывшемся окне введите следующий код:

Private Sub Command4_Click()
DeleteSetting App.Title,»PortSettings», «Flow control «
End Sub

Запустите программу на выполнение и намите на кнопку DeleteSetting , потом переключитесь на окно редактора Системного Реестра и Вы увидете, что параметр Flow control отсутствует.

***Если Вы правильно выполнили все что написано, но ничего не увидели, не волнуйтесь. Нажмите на клавишу F5 — Refresh.

Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора DeleteSetting следующий:

DeleteSetting VBKeyName, Section, Key , где:

  • DeleteSetting — имя самого оператора;
  • VBKeyName — строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting . Мы используем свойство объекта App.Title , т.к. хотим удалить информацию из созданного нашей программой раздела ;
  • Section — строковое значение, которое является именем внутреннего подраздела VBKeyName . В нашем случае он носит имя PortSettings ;
  • Key — строковое значение, которое представляет имя параметра в подразделе PortSettings .В подразделе может быть много параметров и по-этому, мы указываем на желаемое — Flow control ;

Если Вы захотите удалить сразу весь подраздел, а не некоторые параметры, то для этого используйте следующий синтаксис оператора DeleteSetting :

DeleteSetting VBKeyName, Section ;

Поместив код DeleteSetting App.Title,»PortSettings» в Private Sub Command4_Click(), Вы удалите весь подраздел PortSettings .

А если Вы захотите убрать вообще все Ваши установки из Сиастемного Реестра, то воспользуйтесь следующим кодом:

Private Sub Command4_Click()
DeleteSetting App.Title
End Sub

***Внимание. Пользуйтесь оператором DeleteSetting очень осторожно!

Работа с реестром средствами visual basic

Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.4.2006

Репутация: нет
Всего: нет

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186

Exception
Дата 20.4.2006, 11:07 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.4.2006

Репутация: нет
Всего: нет

Спасибо! опять выручил вот инфа, которую нашёл:


читать из реестра:

Errorx1
Дата 20.4.2006, 13:43 (ссылка) | (нет голосов) Загрузка .
Код
Dim key As Microsoft.Win32.RegistryKey
key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(«software\Microsoft\Windows\CurrentVersion\run\»)
Dim name As String = CType(key.GetValue(«Имя ключа»), String)

засовывай в нужный обработчик событий или в функцию и в name получишь параметр ключа.

писать в реестр:

Код
Dim regSave As Microsoft.Win32.RegistryKey
regSave = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(«software\Microsoft\Windows\CurrentVersion\run\»)
Dim newVersion As String = «test» ‘ параметры создаваемого ключа
regSave.SetValue(«Version», newVersion) ‘ записываешь(имя ключа, параметры)
regSave.Close() ‘ закрываешь реестр после записи

Модератор: пожалуйста, используйте теги для кода! И ещё — пишите грамотно, млин.

Это сообщение отредактировал(а) Exception — 20.4.2006, 15:25

Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.4.2006

Репутация: нет
Всего: нет

Errorx1
Дата 23.4.2006, 03:49 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186

Точно так же. Неужели сложно самому подумать ?

Exception
Дата 23.4.2006, 18:58 (ссылка) | (нет голосов) Загрузка .
Код
Dim key As Microsoft.Win32.RegistryKey
key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(«software\Microsoft\Windows\CurrentVersion\run\»)
Dim yourDWORD As Integer = CType(key.GetValue(«Имя ключа»), Integer)
regSave.Close()
Код
Dim regSave As Microsoft.Win32.RegistryKey
regSave = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(«software\Microsoft\Windows\CurrentVersion\run\»)
Dim newDWORD As Integer = 5
regSave.SetValue(«DW», newDWORD) ‘ записываешь(имя ключа, параметры)
regSave.Close() ‘ закрываешь реестр после записи
Google
Дата 12.11.2020, 23:06 (ссылка)
Правила форума VB .NET
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема — телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

Работа с реестром средствами visual basic

Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ !
4. Используйте теги [ code=vba ] . текст программы. [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Работа с реестром средствами visual basic

Чтение и запись в реестр Windows в произвольную ветку можно произвести при помощи функций объекта WScript.Shell:

RegRead и RegWrite


Первая функция возвращает значение, считанное из реестра, вторая — записывает заданное значение в реестр.

При попытке считать несуществующий параметр возникает ошибка,
обойти которую нам поможет директива On Error Resume Next

Пара функций для примера:

(получаем настройки программы из реестра Windows)

Visual Basic 6.0

Visual Basic 6.0

В Visual Basic 6.0 в отличие от пятой версии окна Code и Object появляются в нормальном, не в раскрытом виде. И приходится при каждом запуске VB6 раскрывать эти окна. Можно заставить автоматически раскрывать эти окна при каждом запуске. Создайте в соответствующем разделе реестра

HKEY_CURRENT_USER/Software/Microsoft/Visual Basic/6.0 строковый параметр MDIMaximized = «1»

Похожие главы из других книг

3. Переменные Visual Basic

3. Переменные Visual Basic В Visual Basic переменные накапливают информацию (значения). При их применении Visual Basic занимают область в памяти компьютера, которая предназначена для сохранения этой информации. Имена переменных, составленные из символов, могут иметь длину в 255 символов.

Подход Visual Basic 6.0

Подход Visual Basic 6.0 Благодаря искреннему желанию насладиться более простой жизнью, многие программисты ушли от «мира каркасов» приложений на базе C(++) к более дружественным языкам, таким, как, например, Visual Basic 6.0 (VB6). Язык VB6 стал популярным благодаря тому, что он дает

Создание подключаемого компонента в Visual Basic .NET

Visual Basic 6.0

Visual Basic 6.0 В Visual Basic 6.0 в отличие от пятой версии окна Code и Object появляются в нормальном, не в раскрытом виде. И приходится при каждом запуске VB6 раскрывать эти окна. Можно заставить автоматически раскрывать эти окна при каждом запуске. Создайте в соответствующем разделе

9.3. Редактор Visual Basic

9.3. Редактор Visual Basic После записи рассмотренного выше макроса к шаблону Normal добавился следующий текст макроса: Sub Arial_10_bold() “ “ Arial_10_bold Macro “ Arial 10 Полужирный “ With Selection.Font .Name = «Arial» .Size = 10 .Bold = True .Italic = False .Underline = wdUnderlineNone .UnderlineColor = wdColorAutomatic .StrikeThrough = False .DoubleStrikeThrough = False .Outline =

2.4.2. Генерация кода в Visual Basic

2.4.2. Генерация кода в Visual Basic ERwin поддерживает генерацию кода для MS Visual Basic версий 4.0 и 5.0. В качестве источника информации при генерации форм служит модель ERwin. Использование ERwin позволяет одновременно описывать как клиентскую часть (объекты, отображающие данные на экране),

Что визуального в Visual Basic для приложений?

Что визуального в Visual Basic для приложений? К счастью, VBA во многом избавляет от необходимости нудного печатания программного кода. В одних случаях вы записываете команды, которые нужны в приложении, и используете их в качестве отправной точки при создании новой программы.В

VBA против Visual Basic

VBA против Visual Basic Помимо того, что VBA не позволяет вам создавать отдельные приложения, одно из основных отличий состоит в том, что программы, написанные на VBA, работают медленнее, чем программы, написанные на Visual

Почему VBA обычно медленнее, чем Visual Basic

Почему VBA обычно медленнее, чем Visual Basic Кроме того, что вы не можете создавать в VBA отдельные, автономно работающие приложения, между VBA и Visual Basic есть еще одно серьезное отличие- VBA-программы обычно выполняются медленнее.Причина этого обнаруживается просто: VBA-программу


Различия между VBA и Visual Basic

Различия между VBA и Visual Basic VBA имеет очень много общего с Visual Basic, своим старшим братом, предназначенным для создания независимых приложений. А раз языки похожи, вы можете перенести большую часть своих навыков в программировании на VBA в Visual Basic. Однако вам следует помнить о

Вызов редактора Visual Basic

Вызов редактора Visual Basic Редактор Visual Basic служит командным центром для работы в VBA. В нем вы должны находиться при разработке VBA-форм, создании VBA-кода, тестировании и отладке VBA программ. Экспертом по использованию редактора Visual Basic вы станете после прочтения главы 5, а пока

Краткое знакомство с редактором Visual Basic

Краткое знакомство с редактором Visual Basic Первые обращения к редактору Visual Basic могут вас озадачить. Наверное, присутствие меню и панелей инструментов вверху экрана покажется вам привычным, но вот что означает это обилие окон? Предсказать их взаимное расположение

Пользовательский интерфейс редактора Visual Basic

Пользовательский интерфейс редактора Visual Basic Редактор Visual Basic является стандартным блюдом Microsoft- меню, панели инструментов и комбинации клавиш выглядят и работают очень похоже на Microsoft Office. Вы будете чувствовать себя как дома, если используете VBA с приложениями из Office.С

Среда разработки eMbedded Visual Basic 3.0

Среда разработки eMbedded Visual Basic 3.0 Для краткости в этой главе для обозначения среды eMbedded Visual Basic 3.0 будет использовано сокращение eVB.Запустить eVB можно либо при помощи команды меню Пуск (Пуск ? Программы ? Microsoft eMbedded Visual Tools ? eMbedded Visual Basic 3.0), либо найти в папке установки

Отличия eVB и Visual Basic для. NET

Отличия eVB и Visual Basic для. NET В основном отличия VB.NET от eVB связаны с интеграцией языка VB с Compact Framework и определяются именно внутренней структурой самой CF.Типы данныхВ eVB был один-единственный тип данных на все случаи жизни, Variant, который достался eVB по наследству от VB Script. Visual

Delphi и Visual Basic

Delphi и Visual Basic 1. Есть ли в Delphi эквивалент массива элементов управления из Visual Basic? Hет. Компоненты Delphi не имеют свойства Index, подобное VB. Однако, имеются три основные причины, почему вы хотите использовать их в VB, и для каждой из них есть решение в Delphi. Причина 1. Вы хотите

Чтение значений из реестра Windows на VBA

Чтение и запись в реестр Windows в произвольную ветку можно произвести при помощи функций объекта WScript.Shell:

RegRead и RegWrite

Первая функция возвращает значение, считанное из реестра, вторая — записывает заданное значение в реестр.

При попытке считать несуществующий параметр возникает ошибка,
обойти которую нам поможет директива On Error Resume Next

Пара функций для примера:

(получаем настройки программы из реестра Windows)

  • 12505 просмотров

Комментарии

Отправить комментарий

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Илон Маск рекомендует:  Что такое код ifx_close
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL