IE2017

ActiveX компонент DynamicWrapperX 2.1 расширенный. Работает в том числе под 64-разрядной Windows 8.1

Программирование - Внешние компоненты

DynamicWrapperX — это ActiveX компонент (СОМ-сервер), созданный по мотивам DynamicWrapper, как попытка более полной реализации идеи. Он предоставляет возможность в скриптах на JScript и VBScript регистрировать в качестве методов объекта и затем вызывать функции, экспортируемые dll-библиотеками, в частности функции Windows API. С версии 2 также возможна регистрация функции по её адресу в памяти и регистрация машинного кода функции, представленного в виде хекс-строки. Этот компонент не является модификацией оригинального кода DynamicWrapper, он написан с нуля на языке ассемблера GoAsm. Версия 2.1 тестировалась под Windows XP SP3, Windows 7 SP1 и Windows 8.1.

При решении одной задачи столкнулся с трудностью, в 64-разрядной версии Windows 8.1 никак не получалось зарегистрировать библиотеку dynwrap.dll.

Благо нашел отличную разработку от Юрия Попова

DynamicWrapperX 2.1

Распространяется с согласия автора абсолютно бесплатно.

Лицензия: freeware.

Корректно работает в том числе под 64-разрядной Windows 8.1.

Версия 2.1 тестировалась под Windows XP SP3, Windows 7 SP1 и Windows 8.1.

Нововведения в версии 1 по отношению к DynamicWrapper:

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

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

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

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

  • Добавлено: методы LastError, MemZero, MemCopy, MemRead, MemWrite.
  • Добавлено: необязательный параметр Offset для StrGet и StrPut.
  • Добавлено: возможность использования имён кодировок — "utf-8" и т.п. — в StrPtr, StrGet и StrPut.
  • Изменено: необязательный параметр Offset в NumGet и NumPut может опускаться из середины списка параметров.

В прикрепленных файлах версия 32-разрядная, 64-разрядная и мануал по установке и использованию от разработчика на английском и русском языках.

Скачать файлы

Наименование Файл Версия Размер
Dynwrapx2.1.1.1_32.zip
.zip 10,86Kb
01.07.17
44
.zip 10,86Kb 44 Скачать
Dynwrapx2.1.1.1_64.zip
.zip 11,68Kb
01.07.17
69
.zip 11,68Kb 69 Скачать
HELP.zip
.zip 31,18Kb
01.07.17
34
.zip 31,18Kb 34 Скачать

См. также

Комментарии
1. Андрей Хабибулин (teflon) 27.03.14 23:51 Сейчас в теме
2. Олег Шалимов (CaSH_2004) 344 21.06.15 20:35 Сейчас в теме
За то что не поленился и скопировал сюда с сайта автора описание - спасибо :) Ну а где пример как использовать в 1С?
3. Михаил Загайнов (MihailZ) 21 26.06.15 12:50 Сейчас в теме
(2) CaSH_2004, применений множество. сделай поиск - Новый COMОбъект("DynamicWrapper",
как реализовать функцию Sleep в 1С например и т.д.
4. Сергей Старых (tormozit) 4341 30.12.16 18:26 Сейчас в теме
Можно ли выложить исходники (например на github)?
5. Михаил Загайнов (MihailZ) 21 09.01.17 00:59 Сейчас в теме
6. Сергей Старых (tormozit) 4341 13.06.17 10:24 Сейчас в теме
Появилась новая версия DynamicWrapperX2 с новыми методами (например MemRead). Можно ли обновить описание?
7. Сергей Старых (tormozit) 4341 17.06.17 10:51 Сейчас в теме
У новой версии функция Version возвращает 2.1.4.1 . Хотелось бы знать версию компоненты из этой публикации.
8. Михаил Загайнов (MihailZ) 21 01.07.17 12:38 Сейчас в теме
(6)обновлено до версии 2.1.
9. Михаил Загайнов (MihailZ) 21 01.07.17 12:38 Сейчас в теме
Оставьте свое сообщение