'Все эти методы используют для своей работы следующие переменные:
'идентификатор корневого раздела ветви реестра, остальной путь к ветви
'реестра, имя параметра (в нашем случае элемент массива names), а также
'название переменной, в которую будет считываться значение данного
'параметра.
case 1
obj.GetStringValue RootKey, path, names(i), value
'После считывания значения параметра проверяем, не произошла ли ошибка
'при считывании (как обычно, значение нуль в переменной). Если ошибки нет,
'то записываем параметр и его значение в текстовый файл. Аналогично
'выполняется работа и с другими типами параметров, поэтому их мы описывать
'не будем.
If isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) & " = REG_SZ: " & value
end if
case 2
obj.GetExpandedStringValue RootKey, path, names(i), value
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) & " = REG_EXPAND_SZ: " & value
end if
case 3
obj.GetBinaryValue RootKey, path, names(i), value
for j = lbound(value) to ubound(value)
value(j) = hex(cint(value(j)))
next
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) &" = REG_BINARY : "& _
join(value, ",")
end if
case 4
obj.GetDWordValue RootKey, path, names(i), value
if not isnull(names(i)) or value then
objTextFile.WriteLine names(i) & " = REG_DWORD : " & _
hex(value)
end if
case 7
obj.GetMultiStringValue RootKey, path, names(i), value
for j = lbound(value) to ubound(value)
value(j) = value(j)
next
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) &" = REG_MULTI_SZ : "& _
join(value, ",")
end if
end select
next
end if
End Sub
При написании сценария был использован не только метод EnumValues, но и другие методы класса StdRegProv. Это было необходимо для занесения в текстовый файл значений параметров, найденных в данной ветви реестра. Но это не все методы, описанные в классе StdRegProv. И поскольку большую часть книги все-таки составляют описания параметров реестра, хотя бы вкратце рассмотрим другие методы данного класса. Класс StdRegProv содержит следующие методы.
■ CreateKey — создает раздел в ветви реестра. Для его вызова необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно создать (в том числе и сам создаваемый раздел реестра).
ПРИМЕЧАНИЕ
Если идентификатор корневого раздела не указан, то будет использоваться стандартный идентификатор &H80000002, говорящий о том, что ветвь находится в корневом разделе HKEY_LOCAL_MACHINE.
■ DeleteKey — удаляет раздел в ветви реестра. Для его вызова также необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно удалить (в том числе и сам удаляемый раздел реестра).
■ EnumKey — в сценарии был рассмотрен метод для энумерации параметров указанной ветви реестра, этот же метод возвращает разделы, вложенные в указанную ветвь реестра. Для его работы необходимы следующие параметры: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, разделы которой нужно перечислить, а также переменная, используемая для хранения массива найденных в указанной ветви разделов (например, аналог переменной names нашего сценария).
■ DeleteValue — удаляет указанный параметр из ветви реестра. Для его работы необходимо указать следующие три параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей удаляемый параметр, а также название удаляемого параметра (если название не указано, то будет удалено значение параметра (По умолчанию) ).
■ SetDWORDValue — создает или изменяет указанный параметр DWORD-типа в ветви реестра. Для его работы необходимо указать следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей изменяемый параметр, название изменяемого параметра (или создаваемого), а также новое значение, которое необходимо присвоить указанному параметру. Если название изменяемого параметра указано не будет, то нужно изменить значение параметра (По умолчанию) данной ветви реестра.
■ CheckAccess — определяет, разрешен ли пользователю доступ к указанной ветви реестра. Если метод выполнился успешно, то он возвратит значение 0, иначе — любое другое значение. Для его работы необходимы следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, права на которую необходимо проверить, флаг для определения проверяемых прав, а также переменная, в которую будет помещен результат выполнения метода. Если значение этой переменной будет равно true, то пользователь обладает нужными правами на данную ветвь реестра, иначе возвращается значение false.
Читать дальше