Re[2]: Научите через WBScript управлять API
От: ZAMUNDA Земля для жалоб и предложений
Дата: 12.06.06 18:24
Оценка:
Здравствуйте, George Seryakov, Вы писали:

GS>Здравствуйте, VelDmi, Вы писали:


VD>>http://webfile.ru/986414 по этому адресу расположена справка от программы. Мне нужно использовать API функции этой программы. Но дело в том, что я не программист. Если можно, приведите пример использования какой либо функции, а я, по аналогии, попробую разобраться.


GS>Без библитеки типов (tlb — type library) не разобраться. Так, в общем, код может быть такой:


GS>
GS>set o = CreateObject(<CLSID>)
GS>s = o.GetShellState()
GS>


GS><CLSID> — строка, идентифицирующая объект. В хелпе не указана. Нужна библиотека типов.

CLSID -- это 128-битная (32-байтная) структура описывающая объект, которую ещё можно строкой вида "{########-####-####-####-############}" представить. А вот CreateObject принимает ProgId, можете убедиться в этом сами (цитата MSDN):

Creates a COM object.

object.CreateObject(strProgID[,strPrefix])

Arguments

object
WScript object.

strProgID
String value indicating the programmatic identifier (ProgID) of the object you want to create.

strPrefix
Optional. String value indicating the function prefix.

ProgId имеет вид "<имя TypeLib'а>.<имя CoClass'а>"
ProgId в реестре записан по адресу HKEY_CLASSES_ROOT\CLSID\{UUID (он же GUID) TypeLib'а вместе с фигурными скобками}\ProgID\(Default).
Кстати в хелпнике, который по ссылке в первой мессаге имееЦЦа, есть указание что интерфейс называется IRunpadShell. Можно в реестре поискать значение "IRunpadShell" (значение имеется ввиду искать только 'Data') и наткнуться на адрес типа HKEY_CLASSES_ROOT\Interface\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, а потом можна зайти на адрес <найденный адрес>\TypeLib скопировать оттуда значение (Default) и поискать ключ с таким названием; в ём , как я уже и сказал выше, отыщешь ProgID.

GS>Далее, не всякий COM-сервер можно вызывать из vbs, а только дуальные и диспатчевые. Какой у тебя — можно узнать по библиотеке типов.

А можно просто попробовать его создать, через CreateObject. А можно попробовать написать wsf (в форуме недавно пример появлялся... поищи). Без сарказма -- правда правда незнаю заработает-ли.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.