MyTetra Share
Делитесь знаниями!
Чтение значений из реестра Windows на VBA
Время создания: 31.07.2019 22:37
Текстовые метки: реестр, Средства Windows
Раздел: Разные закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1514719649qeree4gae4/text.html на raw.githubusercontent.com

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

RegRead и RegWrite

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

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

 

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

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

Function DefaultMailAccount() As String

' читает из реестра настройки почтового ящика,

' установленного в TheBAT! как "ящик по-умолчанию"

' возвращает адрес почты, или пустую строку, если TheBAT! не настроен

On Error Resume Next: Err.Clear

key$ = "HKEY_CURRENT_USER\Software\RIT\The Bat!\Users depot\Default"

DefaultMailAccount = CreateObject("WScript.Shell").RegRead(key$)

End Function

Function ПутьКФайлуПрограммыTheBAT() As String

' читает из реестра путь к исполняемому файлу программы TheBAT!

' возвращает путь к файлу, или пустую строку, если TheBAT! не установлен

On Error Resume Next: Err.Clear

key$ = "HKEY_CURRENT_USER\Software\RIT\The Bat!\EXE path"

ПутьКФайлуПрограммыTheBAT = CreateObject("WScript.Shell").RegRead(key$)

End Function

Sub TheBAT_MailBoxes()

' макрос выводит список всех почтовых ящиков, настроенных в программе TheBAT!

On Error Resume Next: Err.Clear

With CreateObject("WScript.Shell")

For i = 1 To 100

key$ = "HKEY_CURRENT_USER\Software\RIT\The Bat!\Users depot\User #" & i

Err.Clear: mailBox$ = .RegRead(key$)

If Err = 0 Then Debug.Print mailBox$

Next

End With

End Sub


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования