1

Тема: VBScript: работа с реестром с помощью объекта JSSys3.dll

Объект JSSys3.dll предоставляет ряд методов для работы с реестром (см. комментарии в коде примера):

Set oSys = CreateObject("JSSys3.Ops")
' запись раздела и значений различных типов:
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Строка1", "проба", "S") ' REG_SZ
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Строка2", "%Windir%", "X") ' REG_EXPAND_SZ
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Массив строк", Array("value1", "value2") , "M") ' REG_MULTI_SZ
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Число", 123, "D") ' REG_DWORD
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Бинарное", Array(100, 0, 255), "B") ' REG_BINARY
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "Бинарное2", Array("64", "00", "FF"), "BH") ' REG_BINARY

errCode = oSys.RegListKeys("HKCU", "Software", Arr) ' чтение массива подразделов
For Each key In Arr
    If key = "_Test" Then
        errCode = oSys.RegListVals("HKCU", "Software\_Test", values) ' чтение массива параметров
        For Each value In values ' обход имён параметров
            WScript.Echo value ' последние два символа имени параметра - его тип
            name = Left(value, Len(value)-2)
            ' чтение параметра по имени (vData, vType - выходные переменные)
            errCode = oSys.RegGetValue("HKCU", "Software\_Test", name, vData, vType)
            Select Case vType
                Case "S", "D" ' строка или число
                    WScript.Echo vData
                Case "M", "B" ' массив строк или байтов (бинарное)
                    WScript.Echo Join(vData)
            End Select
            WScript.Echo "."
        Next
        WScript.Echo "=========="
        errCode = oSys.RegListStringData("HKCU", "Software\_Test", values) ' чтение массива параметров
        For Each value In values ' обход строковых параметров и их значений
            WScript.Echo value ' в формате Параметр^СтроковоеЗначение
        Next
        Exit For
    End If
Next

WScript.Echo "=========="
errCode = oSys.RegWriteValue("HKCU", "Software\_Test", "", "по умолч.", "S") ' запись параметра раздела "по умолчанию"
errCode = oSys.RegGetValue("HKCU", "Software\_Test", "", vData, vType) ' чтение параметра раздела "по умолчанию"
Wscript.Echo vData
errCode = oSys.RegDeleteVal("HKCU", "Software\_Test", "") ' удаление параметра (в данном случае - параметра "по умолчанию")
errCode = oSys.RegDeleteSubkey("HKCU", "Software", "_Test") ' удаление раздела со всем содержимым
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: VBScript: работа с реестром с помощью объекта JSSys3.dll

Методы GetRegFromCLSID и GetRegFromProgID позволяют получить информацию о каком-либо зарегистрированном COM-сервере по его CLSID или ProgID соответственно. Оба метода возвращают массив со следующими элементами:
Array(0) - код ошибки: 0 - успешно, 1 - класс не найден;
Array(1) - CLSID;
Array(2) - ProgID;
Array(3) - VersionIndependentProgID;
Array(4) - InprocServer, путь к файлу DLL;
Array(5) - LocalServer, путь к файлу EXE.
Пример:

Set oSys = CreateObject("JSSys3.Ops")
arr = oSys.GetRegFromProgID("JSSys3.Ops")
For i = 0 To UBound(arr)
    WScript.Echo arr(i)
Next
arr = oSys.GetRegFromCLSID("{F738999A-E160-11D6-B5C6-C78C22D19941}")
For i = 0 To UBound(arr)
    WScript.Echo arr(i)
Next
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.