XML DOM TutorialОбъяснить "на пальцах" нам поможет издательство Диалектика (которое я цитирую ниже).
Итак, здесь про VBA. Все тоже самое актуально и в VBScript.
Напомню: VBA - это диалект языка Visual Basic, используемый внутри всех офисных приложений Microsoft Office.
___________________
Обычно тяжело представить объект VBA как нечто материальное. И это к лучшему: чем дальше удастся отойти от подобных представлений, тем проще работать со всем многообразием предоставляемых объектов. Определение, используемое программистами, на самом деле, достаточно простое.
Объект — это именованный элемент, обладающий:
■
свойствами (настройки, которые может проверять и изменять пользователь);
■
методами (действия, которые может выполнять объект по запросу программы);
а также в некоторых случаях
■ событиями (то, что происходит с объектом и на что он может отреагировать, автоматически предпринимая заранее заданные действия).
Вам может показаться, что термин
объекты не подходит таким "богато одаренным созданиям".
Действительно, объекты больше похожи на живые существа, чем на мертвые глыбы.
Свойства
Тигр или кит обладает такими характерными чертами, как глаза, конечности и хвост — объект обладает
свойствами.
Методы
Лошадь или собака (объект) могут
выполнять команды или
убегать от опасности — объект имеет
методы и
события.
Dragokas написал(а):
Ред. - при этом,
событием можно назвать - например,
лошадь ускорила свое движение (событие) - ответ наездника:
потянуть за поводок (процедура, которую Вы хотите выполнить по этому событию).
Переход от объекта к свойству или методу происходит через знак точки.
Пример:
'создаем экземпляр класса Звери, который хранится в библиотеке Зоопарк
'Библиотека - это файл dll, ocx, tlb, ... зарегистрированный для всеобщего использования (иначе: COM - Component Object Model)
'Сведения о Зоопарке хранятся в реестре Windows.
'Команда set присваивает переменной Тигр ссылку на созданный объект Зверь
set Тигр = CreateObject("Зоопарк.Звери")
'Даем нашему Зверю некоторые свойства, чтобы он мог выполнить то, что мы от него хотим
Тигр.Цвет = "Белый"
Тигр.Поведение = "Агрессивное"
'Выполняем процедуру
Тигр.Бежать
'Запрашиваем выполнение функции Устал с передачей ей аргумента "Проверить тщательно"
'Записываем в переменную "Устал_ли_наш_тигр" значение, которое нам вернет эта функция.
Устал_ли_наш_тигр = Тигр.Устал("Проверить тщательно")
'Проверяем значение переменной
if Устал_ли_наш_тигр = true then Тигр.Отдохнуть
'Выведем на экран, голодный ли наш тигр
'Здесь получаем значение свойства Голодный.
Статус = Тигр.Голодный
'Свойство отличается от функции тем, что оно представляет из себя одну переменную и мы просто получаем ее значение.
'а функция - это совокупность кода, который сначала выполняется и затем решается, какое значение вернуть.
'Заметьте, что свойство в отличие от функции, вызывается без круглых скоб
'Уничтожаем объект Тигр и высвобождаем в ОЗУ использованные ресурсы
set Тигр = Nothing
Все еще хочется услышать техническое определение? Попробуем следующее:
объект — это именованный элемент программы, который содержит информацию и код, обрабатывающий эту информацию. Объект, говорят,
инкапсулирует информацию и соответствующий код.
_____________
Ну как, еще не испугались ?

Ничего страшного. Главное начать этим пользоваться. Понимание прийдет само собою.
Мы подходим к тому, что есть:
- внутренние объекты.
- внешние объекты;
Для языка VBA (например, в Excel-е) встроенными являются такие объекты как:
- книга
- лист
- ячейка
- диаграмма и т.д.
В VBScript такой объект по сути один:
Некоторые из функций (например, msgbox) можно использовать в качестве
процедуры.
Процедура/функция - какая разница, спросите Вы?
Процедура - это совокупность кода, который можно вызвать на исполнение по имени.
Например:
'Вызываем процедуру по имени
Моя_процедура
'А вот здесь сам код процедуры
Sub Моя_Процедура
'Здесь много разного кода, все что Ваша фантазия захочет :)
End Sub
Функция - это тоже самое, что процедура, только она умеет возвращать значение.
Пример:
'Вызываем функцию по имени:
Переменная = Моя_функция()
'Выведем на экран значение переменной
msgbox Переменная
'Код функции
Function Моя_функция
'Кодим, что желаем
'А здесь запишем, какое значение нужно вернуть
Моя_функция = значение
End Function
И функции, и процедуры подразделяются на:
- встроенные (код которых Вы не видите - встроено в движок)
- пользовательские (то, что в примере выше)
- и те, что вызываются из других объектов (помните пример с тигром?)
Но, вернемся к нашей теме:
Примеры работы со встроенным объектом WScript
Например, чтобы отобразить на экране полный путь к выполняемому скрипту, нужно обратится к
объекту WScript и через точку написать имя его
свойства ScriptFullName :
msgbox WScript.ScriptFullName
Чтобы приостановить работу скрипта на 5 секунд, необходимо выполнить метод Sleep с параметром "кол-во мс.":
Теперь по поводу таинственных слов
set Переменная = CreateObject(Библиотека.Класс)
Что же здесь происходит?
Класс - это совокупность свойств и методов.
CreateObject создает экземпляр этого класса.
set присваивает переменной ссылку на этот экземпляр.
Пример
Представьте, что
класс - это план строительства здания.
Создания экземпляра - это строительство дома.
Вы можете выполнить процедуру
жить в доме, но не можете жить в плане, пока не создадите экземпляр - объект Дом.
В одном скрипте вполне можно использовать несколько разных объектов одного и того же класса (иначе говоря - несколько домов).
При чем каждый из них в процессе работы Вы можете можете наделить разными свойствами (иначе - покрасить в разные цвета).
Эти свойства (как и сам объект) будут хранится (существовать) до тех пор, пока Вы не решите уничтожить объект командой
set Объект = nothing
В Windows, как правило, библиотеки классов реализованы при помощи COM-технологий.
Вот, что нам про это пишут:
______________________________________________
В программах, написанных при помощи VBA, пользователь не ограничен в применении объектов одного приложения. Фактически, пользователь даже не ограничен приложениями VBA. Другие приложения и специализированные "компоненты" тоже подходят, если они соответствуют стандарту Microsoft Component Object Model (COM).
COM — это технические требования, описывающие, как объекты определяются в приложениях и других программных элементах и как они могут использоваться в других приложениях. Слово
"автоматизация" указывает на способность приложений, основанных на СОМ, быть управляемыми другой программой. Между прочим, СОМ не является технологией, присущей исключительно VBA или даже Visual Basic. Некоторые из инструментов разработки программного обеспечения, такие как C++, понимают СОМ и могут получать доступ к объектам СОМ.
______________________________________________
Итак в системе у нас есть как уже уже зарегистрированные библиотеки, доступ к которым можно получить посредством COM.
Такие библиотеки типов откомпилированы - классы из них можно использовать, но просмотреть их исходный код нельзя (технология "черного ящика").
К
основным предустановленным в системе объектам, с которыми мы будем работать в VBScript/JScript, можно отнести:
- Windows Script Host Object Model или WSH (wshom.exe) - работа с сетью, ярлыками, средой Windows и т.п.
содержит такие объекты как:
-
WScript.Shell
-
Shell.Application
-
VBScript.RegExp
-
WScript.Network
- Microsoft Scripting Runtime (scrrun.dll) - классы для работы с файлами, папками, дисками, шифрованием и т.п.
-
Scripting.Dictionary
-
Scripting.FileSystemObject
- Scripting.Signer
- Microsoft ADO (набор файлов, начинающийся на msado) - классы для работы с базами данных; также чтение бинарных файлов в байтовый массив.
- ADODB.connection
- ADODB.recordset
- ADODB.Stream
Примеры
- и другие
- MSXML2.XMLHTTP, WinHttp.WinHttpRequest.5.1, Msxml2.ServerXMLHTTP.4.0 Скачивание файла из сети Интернет. Примеры здесь.
- Active Directory Scripting Interface (adsldp.dll, wldap32.dll, adsnt.dll, adsnds.dll, adsnw.dll) - взаимодействие с объектами в каталогах Active Directory, NT, NetWare и т.п.
- Internet Explorer Object Library (iexplore.exe) - библиотека классов для работы с Internet Explorer; Примеры.
- Microsoft WMI Scripting (wbemdisp.tlb) - расширение возможностей программ через программный интерфейс WMI.
Dragokas написал(а):
Другие
часто используемые объекты будут доступны
при установке соответствующей программы:
- Microsoft CDO (версии 1.21, for NTS версии 1.2, for Windows 2000 версии 1.0) - файлы olemsg.dll, cdonts.dll, cdosys.dll) - наборы классов для работы с электронной почтой;
- Microsoft Office 11.0 Object Library (mso.dll) и сопутствующие ей библиотеки отдельных приложений Office - наборы классов для работы с приложениями Office; Примеры.
- Microsoft SQLDMO Object Library (файл sqldmo.dll) - набор классов для получения полного контроля над Microsoft SQL Server (возможность производить любые административные операции, выполнять запросы и т.п.)
- Microsoft Capicom (capicom.dll) - работа с сертификатами, цифровой подписью и шифрованием данных. Пример кода. CAPICOM Reference.
Прочие объекты и библиотеки свободных разработчиков:
VBS и Win API. Юрий Попов. Библиотека dynwrapx.dll и вызов функций Win 32 API
VBS и NET.Framework
Также советую "пощелкать"
CHM-справочник с примерами.