4.7 Объектные модели
Встроенные объектные модели Windows, объектные модели Windows Script Host (WSH), Scripting Runtime, ADO, SQLDMO, CDO, WMI, ADSI, Windows Explorer, Internet Explorer
Наборы объектов, которые предназначены для выполнения задач, относящихся к одной области, называются объектными моделями. Например, в объектной модели Excel предусмотрены объекты, представляющие само приложение Excel, рабочую книгу, отдельные листы на этой рабочей книге, наборы ячеек, диаграммы и т.п. В последней части этой книги подробно разобраны объектные модели приложений Microsoft Office: Word, Excel, Access, PowerPoint, Project, Outlook. Однако при программировании на языке VBA и создании своих собственных приложений ограничиваться только объектными моделей приложений Office совсем не обязательно.
В операционную систему Windows встроено множество других объектных моделей, применение которых может очень сильно расширить возможности ваших приложений. Ниже приведен список дополнительных объектных моделей, которые встроены в Windows или другие продукты Microsoft (об этом будет говориться отдельно), которыми я пользуюсь очень активно. Справку по большинству этих объектных моделей можно найти в MSDN.
Чтобы использовать возможности этих объектных моделей своей программе, необходимо добавить на нее ссылку в ваш проект. Делается это очень просто: в окне редактора Visual Basic выбираете Tools (Сервис) -> References (Ссылки) и выбираете нужную библиотеку.
Вот перечень наиболее интересных с точки зрения применения в своих приложениях объектных моделей:
- Windows Script Host Object Model (wshom.exe) — эта библиотека предназначена для автоматизации работы администраторов. Она обеспечивает возможности программной работы с сетью, принтерами, реестром, ярлыками, журналом событий, позволяет запускать внешние приложения и передавать в них нажатия клавиш и консольные строки и т.п. Есть на всех компьютерах с Windows 2000, XP, 2003 (в качестве необязательного компонента имеется и в Windows 98 Second Edition и Windows NT 4.0);
- Microsoft Scripting Runtime (scrrun.dll) — еще одна библиотека для администраторов. Главное ее богатство — очень удобный (и при этом простой) набор классов для работы с файловой системой — дисками, каталогами, файлами, содержимым текстовых файлов и т.п. Идет в одном наборе с Windows Script Host Object Model;
- Microsoft ADO (набор файлов, начинающийся на msado) — классы для работы с базами данных. Эта библиотека подробно рассмотрена в главе 8 этой книги. Также имеется на всех без исключения компьютерах под управлением Windows 2000, Windows XP и Windows 2003 Server (обычно сразу несколько версий);
- Microsoft SQLDMO Object Library (файл sqldmo.dll) — набор классов для получения полного контроля над Microsoft SQL Server (возможность производить любые административные операции, выполнять запросы и т.п.). Имеется только на компьютерах, на которых установлен SQL Server версий 7.0, 2000 или 2005. В SQL Server 2005 она разбита на несколько частей — SMO (SQL Server Management Objects), RMO (Replication Management Objects) и AMO (Analysis Management Objects);
- Microsoft CDO (версии 1.21, for NTS версии 1.2, for Windows 2000 версии 1.0) — файлы olemsg.dll, cdonts.dll, cdosys.dll) — наборы классов для работы с электронной почтой . Можно использовать для создания и отправки своих почтовых сообщений, просмотра новых сообщений в почтовом ящике и т.п. Есть на всех компьютерах под управлением Windows 2000, Windows XP и Windows 2003 Server. На компьютерах с более старыми операционными системами обычно также имеется, поскольку эта библиотека устанавливается вместе с Microsoft Office.
- Microsoft WMI Scripting v1.1 (wbemdisp.tlb) — расширение возможностей программ через программный интерфейс WMI (Windows Management Instrumentarium). Возможности — совершенно невероятные: от управления скоростью вращения вентилятора (и вообще возможности работы со всеми устройствами, про которые знает операционная система) до установки программного обеспечения, запуска процессов на удаленном компьютере, управления службами и т.п. В ней реализованы очень мощные возможности работы с событиями. Например, можно выполнять какой-либо код в ответ на запуск или завершение работы программы с определенным именем на удаленном компьютере, в ответ на запуск или удаление файла в каталоге, появления записи в журнале событий и т.п. Эта объектная модель (вместе со службой WMI) встроена во все компьютеры под управлением Windows 2000, Windows XP и Windows 2003 Server.
- Active Directory Scripting Interface, ADSI (adsldp.dll, wldap32.dll, adsnt.dll, adsnds.dll, adsnw.dll) — взаимодействие с объектами в каталогах Active Directory, NT, NetWare, то есть работа с учетными записями пользователей, группами, объектами компьютеров, принтеров и т.п. Также встроена в операционные системы Windows 2000, Windows XP и Windows 2003 Server (как в серверные, так и в пользовательские версии);
- объектная модель Windows Explorer. Информации по ней в справке не так много, но иногда она очень удобна для выполнения различных операций с файлами на диске;
- объектная модель Internet Explorer. Очень мощное и удобное средство для организации взаимодействия с пользователем. Позволяет показывать пользователю Web-страницы (последовательно их меняя, можно организовать "мультфильм"), флэш-ролики, демонстрировать видео и аудиоклипы и т.п. Очень удобна эта объектная модель и для сбора информации от пользователей при помощи скриптов и форм HTML, хотя в Microsoft Office для этой цели чаще всего используются обычные графические формы (о которых рассказывается в следующей главе).
Для тех, кто никогда не работал с этими объектными моделями, их применение может показаться темным лесом, но на практике все не так страшно. Они изначально создавались таким образом, чтобы с ними удобно было работать пользователям, не являющимися профессиональными программистами (например, администраторам). По опыту слушателей учебного курса "Программирование для администраторов", где эти рассматриваются эти объектные модели, освоить их можно очень быстро.