Рис. 10.9.Информация о зарегистрированном объекте DateArc.WSC в ветви HKEY_LOCAL_MACHINE
В разделе HKEY_CLASSES_ROOT\CLSID
создается новый подраздел, название которого совпадает с глобальным кодом объекта DateArc.WSC — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}". Значением по умолчанию для нового подраздела является "DateArc" (рис. 10.10).
Рис. 10.10.Информация о зарегистрированном объекте DateArc.WSC в ветви HKEY_CLASSES_ROOT
В новом разделе создаются, в свою очередь, еще несколько подразделов, значения которых очень важны для функционирования компонента-сценария в качестве СОМ-объекта (см. разд. "Технология Windows Script Components"). Эти разделы для нашего примера описаны в табл. 10.2.
Таблица 10.2.Подразделы, создаваемые в разделе HKCR\CLSID \{424AC2BC-5732-4DEA-BE17-0211AF99CD79} при регистрации объекта DateArc.WSC
Название |
Значение по умолчанию |
Описание |
InprocServer32 |
"F:\WINDOWS\System32\scrobj.dll" |
Полный путь к оболочке компонентов-сценариев scrobj.dll |
ProgID |
"DateArc.WSC.1.00" |
Программный идентификатор объекта, включающий номер версии |
ScriptletURL |
"file://C:\WSC\DateArc.wsc" |
Полный путь к WSC-файлу |
VersionIndependentProgID |
"DateArc.WSC" |
Программный идентификатор объекта без номера версии |
Отключается компонент-сценарий так же просто, как и регистрируется. Снова нужно выделить в Проводнике Windows WSC-файл, щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Отключить(Unregister). При этом из системного реестра записи об этом объекте будут удалены, после чего выполнится функция Unregister()
(рис. 10.11).
Рис. 10.11.Информация об отключении компонента-сценария DateArc.WSC
Реализация объекта DateArc.wsc на VBScript
Различие между компонентами-сценариями, написанными на языках JScript и VBScript, проявляется только в секции WSC-файлов. Во-первых, естественным образом меняется синтаксис описанных внутри контейнера функций. Во-вторых, в WSC-файле, написанном с помощью VBScript, отсутствует описание внутреннего объекта, который генерируется программой Windows Script Component Wizard и имеет поля и методы, совпадающие с объявленными внутри элемента (см. листинг 10.3).
Объяснение этому очень простое — в VBScript нельзя создавать свои внутренние объекты.
Полностью содержимое файла DateArcVB.wsc, который реализует СОМ-объект DateArc.WSC
с помощью VBScript, приведено в листинге 10.5.
Листинг 10.5. СОМ-объект DateArc.WSC (VBScript)
version="1.00" classid="{424ac2bc-5732-4dea-be17-0211af99cd79}">
Dim WshShell
Function Register()
'Создаем объект WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Компонент зарегистрирован в системе",0,_
"Компонент для архивирования файлов",vbInformation
End Function
Function Unregister()
'Создаем объект WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Компонент удален из системы",0,_
"Компонент для архивирования файлов",vbInformation
End Function
]]>
Dim SFrom 'Исходный каталог для архивирования
Dim SArch 'Каталог, в котором будет создаваться архив
Dim SPref 'Префикс файла
Dim SMask 'Маска, по которой отбираются файлы для
'архивирования
Dim SErrMess 'Текст сообщения об ошибке
'Чтение и запись свойства SFrom
Function get_SFrom()
get_SFrom = SFrom
End Function
Function put_SFrom(newValue)
SFrom = newValue
End Function
'Чтение и запись свойства SArch
Function get_SArch()
get_SArch = SArch
End Function
Function put_SArch(newValue)
SArch = newValue
End Function
'Чтение и запись свойства SPref
Function get_SPref()
get_SPref = SPref
End Function
Function put_SPref(newValue)
SPref = newValue
End Function
'Чтение и запись свойства SMask
Function get_SMask()
get_SMask = SMask
End Function
Function put_SMask(newValue)
SMask = newValue
End Function
'Чтение свойства SErrMess
Function get_SErrMess()
get_SErrMess = SErrMess
End Function
'Вспомогательная функция для символьного представления даты
Function NowIs()
Dim d,s,s1
s=""
s1=""
Читать дальше