<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: работа с реестром с помощью объекта JSSys3.dll]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2866&amp;type=atom" />
	<updated>2009-03-01T08:26:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2866</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: работа с реестром с помощью объекта JSSys3.dll]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20150#p20150" />
			<content type="html"><![CDATA[<p>Методы <strong>GetRegFromCLSID</strong> и <strong>GetRegFromProgID</strong> позволяют получить информацию о каком-либо зарегистрированном COM-сервере по его CLSID или ProgID соответственно. Оба метода возвращают массив со следующими элементами:<br />Array(0) - код ошибки: 0 - успешно, 1 - класс не найден;<br />Array(1) - CLSID;<br />Array(2) - ProgID;<br />Array(3) - VersionIndependentProgID;<br />Array(4) - InprocServer, путь к файлу DLL;<br />Array(5) - LocalServer, путь к файлу EXE.<br />Пример:<br /></p><div class="codebox"><pre><code>Set oSys = CreateObject(&quot;JSSys3.Ops&quot;)
arr = oSys.GetRegFromProgID(&quot;JSSys3.Ops&quot;)
For i = 0 To UBound(arr)
    WScript.Echo arr(i)
Next
arr = oSys.GetRegFromCLSID(&quot;{F738999A-E160-11D6-B5C6-C78C22D19941}&quot;)
For i = 0 To UBound(arr)
    WScript.Echo arr(i)
Next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-03-01T08:26:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20150#p20150</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: работа с реестром с помощью объекта JSSys3.dll]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20130#p20130" />
			<content type="html"><![CDATA[<p>Объект <a href="http://forum.script-coding.com/viewtopic.php?pid=20110#p20110">JSSys3.dll</a> предоставляет ряд методов для работы с реестром (см. комментарии в коде примера):<br /></p><div class="codebox"><pre><code>Set oSys = CreateObject(&quot;JSSys3.Ops&quot;)
&#039; запись раздела и значений различных типов:
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Строка1&quot;, &quot;проба&quot;, &quot;S&quot;) &#039; REG_SZ
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Строка2&quot;, &quot;%Windir%&quot;, &quot;X&quot;) &#039; REG_EXPAND_SZ
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Массив строк&quot;, Array(&quot;value1&quot;, &quot;value2&quot;) , &quot;M&quot;) &#039; REG_MULTI_SZ
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Число&quot;, 123, &quot;D&quot;) &#039; REG_DWORD
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Бинарное&quot;, Array(100, 0, 255), &quot;B&quot;) &#039; REG_BINARY
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;Бинарное2&quot;, Array(&quot;64&quot;, &quot;00&quot;, &quot;FF&quot;), &quot;BH&quot;) &#039; REG_BINARY

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

WScript.Echo &quot;==========&quot;
errCode = oSys.RegWriteValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;&quot;, &quot;по умолч.&quot;, &quot;S&quot;) &#039; запись параметра раздела &quot;по умолчанию&quot;
errCode = oSys.RegGetValue(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;&quot;, vData, vType) &#039; чтение параметра раздела &quot;по умолчанию&quot;
Wscript.Echo vData
errCode = oSys.RegDeleteVal(&quot;HKCU&quot;, &quot;Software\_Test&quot;, &quot;&quot;) &#039; удаление параметра (в данном случае - параметра &quot;по умолчанию&quot;)
errCode = oSys.RegDeleteSubkey(&quot;HKCU&quot;, &quot;Software&quot;, &quot;_Test&quot;) &#039; удаление раздела со всем содержимым</code></pre></div>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2009-02-28T21:14:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20130#p20130</id>
		</entry>
</feed>
