1

Тема: WSH: браузеры объектов автоматизации (OLE/COM/Automation)

Для того, чтобы узнать какие объекты автоматизации, свойства, методы и события поддерживает та или иная библиотека, можно воспользоваться либо прилагаемой документацией, либо одним из браузеров объектов Automation (библиотека должна быть предварительно зарегистрирована в системе:

"%systemroot%\system32\regsvr32.exe" "<путь к библиотеке Automation>"

и иметь библиотеку типов).

&#9674; Браузер объектов из состава редактора VBA Microsoft Office
* запустить приложение Microsoft Office (например Microsoft Excel);
* запустить из него редактор VBA («Alt-F11» или меню «\Сервис\Макрос\Редактор Visual Basic…»);
* подключить требуемую зарегистрированную библиотеку (меню «\Tools\References…»);
* открыть браузер объектов («F2» или меню «\View\Object Browser») и выбрав эту библиотеку вместо «All Libraries».

Примечание:
* чтобы посмотреть скрытые члены объектной модели, щёлкните правой кнопкой мышки в списке «Classes» и выберете из контекстного меню пункт «Show Hidden Members».

&#9674; Браузер объектов из состава редактора скриптов «Microsoft Script Editor» Microsoft Office
* запустить редактор скриптов (например, для «Microsoft Office 2003» — это файл «%ProgramFiles%\Microsoft Office\office11\mse7.exe»);
* открыть браузер объектов («Ctrl-Alt-J» или меню «\View\Other Windows\Object Browser»;
* выбрать нужный файл библиотеки для просмотра (кнопка «Customize», далее «Add», «Select», «OK» [или «Browse…» для указания файла библиотеки, далее «Select», «OK»]).

Примечание:
* чтобы посмотреть скрытые члены объектной модели, щёлкните правой кнопкой мышки в списке «Objects» и выберете из контекстного меню пункт «Show Hidden Members».

&#9674; TypeLib Browser 2.05

&#9674; MiTeC OLE/COM Object Explorer 1.1

&#9674; iTripoli Type Library Viewer 1.4.1

&#9674; Microsoft OLE Viewer
Доступен для загрузки, как отдельно (2.1.0.57): Microsoft OLE Viewer, так и в составе многих комплексов:
* Windows 2000 Resource Kit (2.10.059): Windows 2000 Resource Kit Tool : OLE/COM Object Viewer (oleview.exe);
* Windows Server 2003 Resource Kit (та же версия, 2.10.059, но отличается размером и датой компиляции: данный новее почти на четыре года): Windows Server 2003 Resource Kit Tools
* Visual Studio, в том числе и .Net разных версий (так что, если у Вас установлено — поищите в %ProgramFiles% файл «oleview.exe»);
* в составе Windows SDK разных версий, например: Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1, Windows SDK for Windows Server 2008 and .NET Framework 3.5.

По материалам форума. Отдельное спасибо YMP, The gray Cardinal, Felix Faria.

2 (изменено: Аскет, 2012-01-16 00:43:01)

Re: WSH: браузеры объектов автоматизации (OLE/COM/Automation)

&#9674; PowerBASIC COM Browser 2.0 из пакета PowerBasic

Отображает список зарегистрированных библиотек типов в упорядочиваемой по 3-м полям таблице: LibName, Filename и Path (директория хранения файла).
Декомпилирует TLB в иерархическую текстовую структуру с исходым кодом на языке PB, с возможностью экспорта в текстовый файл.
Примечателен тем, что отображает ProgID для классов.

+ Отображает скрытые члены
+ Отображает ProgID

Post's attachments

Pbrow.zip 91.75 kb, 83 downloads since 2012-01-08 

You don't have the permssions to download the attachments of this post.

3

Re: WSH: браузеры объектов автоматизации (OLE/COM/Automation)

Как вы наверно знаете, я являюсь давним поклонником технологии COM.
Хочу продемонстрировать инструмент, призванный помочь при работе с библиотеками/ProgID'ами/CLSID'ами, вобщем с COM.

http://true-script.narod.ru/olderfiles/1/COM-Informer.PNG

COM-Informer предназначен для получения ключевой информации обо всех классах, экспортируемых COM-сервером:
- Имя
- ProgID
- CLSID
- Путь и имя файла COM-сервера

Помню, были на форуме вопросы из разряда «как получить список идентификаторов ProgID?». В ответе обычно направляют к ObjectBrowser'у.
Но:
а) Ни всякий COM-браузер выдаёт такую информацию
б) Большинство COM-Браузеров отображают только некоторую часть объектов и интерфейсов, упрямо не замечая остальные. И даже браузер объектов такого монстра как VB6, тоже, страдает этим недугом. А ведь всё очень просто. Но об этом как-нибудь в другой раз [а возможно, и неспроста ларец запрятан ].
в) Что если com-сервер вообще не имеет библиотеки типов (tlb)? Браузер начинает ругаться и отбрехиваться, мол ничего и знать не хочет о таких com-серверах.

А сейчас давайте проведём небольшой эксперимент.

В качестве подопытного возьмём catsrvut.dll (COMEXPLib, «COM Services») из windows\system32.
Берём любой браузер объектов (например, PBROW из пакета PowerBasic - он отображает progid'ы) и натравим его на подопытную библиотеку catsrvut.dll.
ClientExp.ComClientExport.1 - всего один класс, не густо. Что-то связанное с дебрями COM+ подумаете Вы и откините библиотеку в чёрный ящик ненужных вещей.

Но давайте обработаем туже библиотеку в COM-informer'е:
1) в текстовое поле слева вбиваем catsrvut.dll
2) жмём на Get info by Lib.
или заносим полученное "ClientExp.ComClientExport.1" в поле «ProgID or CLSID» и давим на Get info by ProgID.

Получаем аж (!)32 интереснейших класса, 13 из которых имеют свои ProgID'ы и юзабельны на 100%!
Ничего так глаза раскрывает, не правда-ли?

И кстати, раз уж заговорил о полезных и интересных классах из либы - класс MakeCab (откликается на "MakeCab.MakeCab"), жмёт исполняемые файлы в CAB-архив с относительно большой компрессией.
GenerateMSI Class - явно что-то очень интересное и связанное с генерацией инсталляторов.

И таких классов в штатной поставке системы очень много, сродни WMI - тысячи их, или даже больше - порядка 5 тысяч (говорю о XP SP2).

Post's attachments

COMinformer.zip 227.27 kb, 49 downloads since 2016-01-15 

You don't have the permssions to download the attachments of this post.