1 (изменено: YMP, 2014-07-01 18:49:36)

Тема: JScript/VBScript & Win32 API: DynamicWrapperX 2.1

Версию 2 см. в следующем посте.

DynamicWrapperX - это ActiveX компонент (СОМ-сервер), написанный мной по мотивам DynamicWrapper как попытка более полной реализации идеи. Он предоставляет возможность из скриптов на JScript и VBScript вызывать функции, экспортируемые DLL-библиотеками, в частности функции Windows API. Этот компонент не является модификацией оригинального кода DynamicWrapper, он написан с нуля на языке ассемблера GoAsm. Тестировался под Windows XP SP1 и Windows 98 SE.

Нововведения заключаются на данный момент в следующем:

1) Добавлена возможность регистрации (установки) компонента в системе только для текущего пользователя. Это может пригодиться, если у пользователя нет прав администратора.
2) Расширен набор типов входных параметров и возвращаемых значений.
3) Добавлены выходные параметры.
4) Унифицирована работа со строками в JScript и VBScript.
5) Реализован обратный вызов (callback), т.е. возможность для функций API в свою очередь вызывать функции скрипта. Последнее нужно для использования таких API-функций, как EnumWindows.
6) Под Windows 98 отпала необходимость создавать отдельный объект для каждой используемой функции.
7) Добавлено несколько полезных, на мой взгляд, встроенных методов - чтение/запись данных по адресу в памяти и пара других.

Подробное описание с примерами использования смотрите в приложенном к компоненту файле справки.

Обсуждение на форуме: WSH: обсуждаем DynamicWrapperX от YMP - 2
---------------------------------------------------------

P.S. Хотя я и постарался протестировать компонент в различных ситуациях, идеальную его работу гарантировать не могу. Буду благодарен за сообщения о глюках и багах, буде такие обнаружатся.

Post's attachments

dynwrapx1_00.zip 13.86 kb, 1312 downloads since 2008-09-05 

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

2 (изменено: YMP, 2016-12-23 19:30:54)

Re: JScript/VBScript & Win32 API: DynamicWrapperX 2.1

Изменения в версии 2.0.0.0 по отношению к версии 1.0.0.0:

1) Windows 98 не поддерживается.
2) Доступны два варианта: x86 и x64.
3) Изменён CLSID компонента.
4) При установке и удалении проверяется наличие 1-й версии; дальнейшее зависит от результатов проверки (см. раздел Регистрация в системе).
5) Расширен набор типов параметров и возвращаемых значений: добавлены типы m (Int64), q (UInt64), v (VARIANT).
6) Количество callback-функций теперь неограничено.
7) Расширены возможности метода Register (регистрация функции по ординалу, регистрация под другим именем, добавлен флаговый параметр "f=").
8) Добавлены встроенные методы RegisterAddr (регистрация по адресу), RegisterCode (регистрация машинного кода), StrPut, ObjPtr, ObjGet, ArrPtr, VarPtr, MemAlloc, MemFree, Bitness, Version.
9) В методах StrPtr, StrGet, StrPut вместо типа строки можно прямо указать её кодировку.

Подробности в файле справки в архиве. На случай глюков, багов, вопросов или предложений по функционалу — тема на форуме, либо e-mail под моим именем в начале справки.

3 (изменено: YMP, 2017-03-08 18:17:20)

Re: JScript/VBScript & Win32 API: DynamicWrapperX 2.1

Версия 2.1.1.1. Исправлена ошибка в методе LastError, вызывавшая исключение при его вызове с аргументом 1, если описание для кода ошибки не было найдено. Скачать можно тут.