Вкл\Выкл свет
ActiveX‑объекты
ActiveX объекты

ActiveX‑объекты – это специальные программы, которые не могут быть выполнены непосредственно двойным щелчком кнопкой мыши на файле ActiveX‑объекта, но могут быть выполнены под руководством операционной системы Windows. Для этого применяются либо операции вставки и внедрения, либо команда rundll32 . exe. Да, несмотря на то, что ActiveX‑объекты не являются полноценными программами, некоторые из них также возможно вызвать как программы. Например, попробуем выполнить команду rundll32 amovie. ocx, RunDll / play /close E:\music\Мультфильмы\Музыка звезд\5.wma (не забудьте изменить путь и имя музыкального файла на свои). Результат выполнения этой команды можно увидеть на рис. 1.13.

Рис. 1.13. Пример вызова ActiveX‑объекта

ПРИМЕЧАНИЕ

Плюсом таких вызовов является то, что каждый вызванный ActiveX‑объект выполняется как отдельная программа. Другими словами, если вы несколько раз вызовете один и тот же ActiveX‑объект, то будет открыто несколько ActiveX‑объектов (в данном случае проигрывателей), а не только один.

Рассмотрим приведенный выше вызов ActiveX‑объекта детальней: rundll32 amovie. ocx, RunDll /play /close E:\music\Мультфильмы\Музыка звезд\5.wma. Как можно заметить, он практически ничем не отличается от вызова функций из библиотек – amovie. ocx является файлом, из которого берется функция, RunDll является самой функцией, а путь к музыкальному файлу – ее аргументом. Кроме пути к музыкальному файлу, используется еще два аргумента функции – /play и /close. Первый из них говорит о том, что данный ActiveX‑объект необходимо вызвать и начать проигрывать, а второй аргумент означает, что после выполнения своей задачи ActiveX‑объект должен быть автоматически закрыт.

Кроме функции RunDll, ActiveX‑объект amovie. ocx (да и большинство других ActiveX‑объектов) поддерживает еще две функции – DllRegisterServer и DllUnregisterServer. Первая из них регистрирует ActiveX‑объект в реестре операционной системы, а вторая удаляет из реестра всю информацию об ActiveX‑объекте.

ПРИМЕЧАНИЕ

Даже если ActiveX‑объект не будет зарегистрирован в системе, его все равно возможно вызвать с помощью функции RunDll или другой подобной функции.

ActiveX‑объект amovie. ocx также поддерживает функцию LoadFilterGraph, которая используется для загрузки графического фильтра, но, по мнению автора, данной функции нельзя передать сам путь к фильтру.

Теперь вкратце рассмотрим функции некоторых ActiveX‑объектов, которые могут находиться в вашей операционной системе (не забывайте, что эти ActiveX‑объекты, как и все остальные, поддерживают и такие функции, как DllRegisterServer и DllUnregisterServer).

■ rundll32 HHCTRL. OCX, doWinMain – выполнение этой команды приводит к вызову диалога HTML Help, приведенного на рис. 1.14. Содержимое диалога (файлы connect. inf и т. д.) находится в каталоге %userprofile%\MZ. Если же данная папка отсутствует в системе, то будет выводиться ошибка о невозможности загрузки страницы.

Этот ActiveX‑объект расположен в каталоге %systemroot%\SYSTEM32.

■ rundll32 msdxm. ocx, RunDll /play /stop «путь к музыкальному файлу» – вызов данной функции воспроизводит указанный музыкальный файл с помощью Проигрывателя Windows Media.

Этот ActiveX‑объект расположен в каталоге %systemroot%\SYSTEM32.

Рис. 1.14. Вызов программы HTML Help

Вот и все стандартные ActiveX‑объекты, которые, кроме DllRegisterServer и DllUnregisterServer, поддерживают дополнительные функции.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Всего комментариев: 0
Имя *:
Email *:
Код *: