Глава 16
Сервер сценариев Windows
При рассказе об инструментарии управления WMI уже рассматривались примеры создания сценариев сервера сценариев Windows с использованием WMI, сейчас же рассмотрим некоторые объекты, доступ к которым можно получить в Windows XP, а также методы для работы с ними. Глава будет оформлена как справочник, так как работа с объектами легче, чем работа с инструментарием WMI, тем более что в Интернете можно найти очень много примеров работы с объектами.
Для доступа к реестру необходимо подключить объект WshShell. Для этого нужно воспользоваться следующим объявлением: Set имя_нового_объекта = WScript.CreateObject("WScript. Shell"). Объект поддерживает следующие методы.
■ RegRead(путь к ветви реестра и имя параметра) — считывает из реестра значение параметра, указанного в качестве входного значения. При этом если входное значение будет завершаться косой чертой (\), то будет считываться значение по умолчанию данной ветви реестра. Следует также напомнить, что путь к ветви реестра должен начинаться не с полного названия корневого раздела, а с его аббревиатуры. Например, возможны следующие аббревиатуры:
• HKCU — соответствует корневому разделу HKEY_CURRENT_USER;
• HKLM — HKEY_LOCAL_MACHINE;
• HKCR — HKEY_CLASSES_ROOT.
■ RegWrite путь к ветви реестра и имя параметра, значение параметра, тип параметра — редактирует значение существующего параметра реестра или создает новый параметр. При этом для его работы необходимо три входных значения, последнее из которых является аббревиатурой типа создаваемого параметра. Возможны следующие аббревиатуры:
• REG_SZ — строковый параметр;
• REG_DWORD — параметр REG_DWORD-типа;
• REG_BINARY — параметр REG_BINARY-типа.
Как и в методе RegRead, если путь к создаваемому параметру будет заканчиваться косой чертой, то будет изменяться значение параметра (По умолчанию).
■ RegDelete путь к ветви реестра и имя параметра, который мы удаляем — удаляет из реестра указанный во входящем значении параметр. При этом если входящее значение оканчивается косой чертой, то будет удалена вся ветвь.
Рассмотрим простой пример работы с данными методами. В нем будет создан параметр, а также отредактирован параметр (По умолчанию). Затем произойдет попытка считать созданные параметры, а после этого удаление сначала отдельного параметра, а потом всей ветви реестра, которая была создана ранее.
Листинг 16.1. Работа с методами для доступа к реестру
set wshshell = WScript.CreateObject("WScript.Shell")
wshshell.RegWrite "HKCU\Primer_sozdania_vetvi\hello_world", "BIG_WORLD", "REG_SZ"
wshshell.RegWrite "HKCU\Primer_sozdania_vetvi\", "Изменяем значение параметра По умолчанию", "REG_SZ"
MsgBox wshshell. RegRead("HKCU\Primer_sozdania_vetvi\hello_world")
MsgBox wshshell.RegRead("HKCU\Primer_sozdania_vetvi\")
wshshell.RegDelete "HKCU\Primer_sozdania_vetvi\hello_world"
wshshell.RegDelete "HKCU\Primer_sozdania_vetvi\"
Для доступа к файловой системе используется следующий вызов: Set имя_объекта = CreateObject("Scripting.FileSystemObject"). Объект поддерживает следующие методы.
■ BuildPath("путь к каталогу", "название файла") — создает путь на основе указанного пути к каталогу и имени файла. Иными словами, он просто возвращает строку формата «путь к каталогу» & "\" & «имя файла».
■ CopyFile «путь и имя копируемого файла», «путь и имя нового файла», «флаг перезаписи» — копирует файл, указанный в первом входном параметре, туда, куда указывает второй входной параметр (и, если необходимо, меняет имя файла). При этом третий входной параметр определяет, будет ли перезаписываться файл, если он уже существует. Если значение третьего входного параметра равно false, то в случае существования файла в каталоге назначения будет происходить ошибка и файл копироваться не будет. Если же значение третьего входного параметра равно true, то файл, если он существу ет в каталоге назначения, будет перезаписан.
■ CopyFolder «путь и имя копируемой папки», «путь и имя новой папки», «флаг перезаписи» — работа данного метода аналогична работе предыдущего метода, но вместо файла он копирует папку.
■ CreateFolder(«путь к новой папке и ее название») — создает указанную во входном значении папку. При этом после своей работы метод возвращает ссылку на объект, указывающий на созданную папку. Данный объект, ссылка на который возвращается, поддерживает несколько методов. Метод возвращает:
• Path — путь к созданной папке, если же путь не определен, то папка создана не была;
• Size — размер созданной папки и ее содержимого;
• Attributes — битовую маску, указывающую, какие атрибуты определены для данной папки;
Читать дальше