|
Модераторы: MetalFan |
|
TrashMaster |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.1.2014 Репутация: нет Всего: нет |
Встроил в программу поддержку скриптов Microsoft Windows Script Host. Хочу немного расширить возможности поддержкой асинхронных событий. Работает через OLE Automation:
IScriptControl из MSScriptControl_TLB, msscript.ocx IWshShell3 (WScript.Shell) из IWshRuntimeLibrary_TLB, wshom.ocx В скриптах, запускаемых интерпретатором wscript.exe, объект "WScript" имеет метод CreateObject, который создает объект "WbemScripting.SWbemSink" и привязывает к его событиям процедуры из сценария. Затем эти процедуры используются в событиях обратного вызова WMI.
Вопрос в реализации этой функции для OLE, где у WScript.Shell такого метода нет. Сам скрипт запускается в отдельном потоке и в целом выполняется асинхронно, но без нормальной поддержки SWbemSink нет возможности отслеживать несколько событий системы через WMI одновременно из одного сценария. Работают все необходимые объекты и можно передавать процедуру как IDispatch
или добраться до процедуры как IScriptProcedure через ScriptControl.Procedures.Item[N]. Объект "WbemScripting.SWbemSink" спокойно создается просто через CreateObject, но естественно, он еще не привязан к процедурам скрипта. В autoit эта задача решена функцией ObjEvent.
Т.е. без дополнительных программных прослоек, "заряжается" стандартный объект ОС. Проблема, как забраться в ISWbemSink из Delphi? Понятно, что через Invoke, но не знаю какие параметры передавать. Може есть какой вспомогательный объект в WMI, который это может?
Полная всей объектной модели WMI и в частности WbemScripting_TLB Надеюсь на помощь сообщества. |
||||||||||
|
|||||||||||
Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |