Все о программировании.
Главное меню
Регистрация DLL и ActiveX
Вы знаете как зарегистрировать OLE управление типа динамической библиотеки (DLL) или управление ActiveX (OCX файлы) из приложения Delphi?
Одна из особенностей, которые делают Delphi популярным – это в большинстве случаев при проектировании приложения получается всего один исполняемый файл, который нужно отдать заказчику.
Однако, в некоторых ситуациях, например, когда Вы импортируете управление ActiveX в Ваш проект, Вы должны будете удостовериться, что это управление ActiveX зарегистрировано на машинах Ваших пользователей. Если управление не зарегистрировано, будет вызвано исключение EOleSysError.
RegSvr32.exe
Regsvr32.exe – инструмент, который из командной строки регистрирует DLL и управления ActiveX в системе. Вы можете вручную использовать Regsvr32.exe (Windows.Пуск->Выполнить. ) чтобы зарегистрировать или убрать регистрацию управления OLE типа DLL плп управления ActiveX, которые являются саморегистрируемыми.
Когда Вы используете Regsvr32.exe, это пытается загрузить компонент и вызвать функцию DLLSelfRegister. Если попытка успешная, Regsvr32.exe отображает окно с сообщением об успешной регистрации.
Regsvr32.exe имеет следующие опции командной строки:
В коде Delphi
Чтобы вызвать инструмент Regsvr32.exe изнутри кода Delphi, нужна функция, которая может запустить файл на выполнение и ждать, когда он закончит работу.
Вот как может выглядеть процедура RegisterOCX:
Обратите внимание: переменная ocxPath указывает путь к Flash.ocx управлению ActiveX.
Чтобы быть способным зарегистрироваться, управление ActiveX должна осуществить функцию DllRegisterServer. Иными словами, эта функция создает записи в системном реестре для всех классов управления. Мы не должны волноваться относительно функции DllRegisterServer, мы просто должны удостовериться, что она есть. Ради простоты, мы предположим, что управление ActiveX (.OCX файл) расположено в той же самой папке, что и Ваше приложение.
В строке ExecAndWait(‘regsvr32’,’/s ‘ + ocxPath); в коде выше вызывается Regsvr32.exe, которой передается переключатель /s (не отображать сообщения) и полный путь к управлению ActiveX.
Функция ExecAndWait:
Функция ExecAndWait использует вызов ShellExecuteEx API для запуска файла.
Пользователи, которые активно работают в сети Интернет, могут встретить проблему при запуске некоторых приложений в браузере – ошибку “Загрузка ActiveX-компонента не была выполнена”. Наиболее часто данная проблема появляется в браузере Internet Explorer. Дальше мы постараемся доходчиво объяснить что это такое и как исправить ошибку загрузки этой надстройки.
Что это за ошибка?
Для общего понимания дела, давайте разберемся с предметом самой ошибки – ActiveX-компонентой. Ведь поняв что это такое, сразу можно догадаться про дальнейшие действия.
Технология ActiveX – это набор специальных приложений, которые требуются для воспроизведения различных мультимедийных файлов, плагинов и флеш-компонент в браузере Microsoft Internet Explorer. Данные компоненты идут по умолчанию при установке Windows (XP/7/8/10)
В настоящее время, от этой технологии уже отказались даже в Microsoft, а многие популярные браузеры активно переходят на технологию NPAPI. Но все же, еще есть некоторые девайсы, приложения и веб серверы, которые запрашивают активацию ActiveX.
Также в элементах ActiveX предусмотрены средства безопасности, которые блокируют загрузку нежелательного контента и приложений, собирающих личные данные. Фильтры АктивИкс отслеживают такие веб-сайты и запрещают загрузку данных с них, после чего пользователь видит уведомление об ошибке – “Загрузка ActiveX-компонента не была выполнена”. Наиболее актуальна такая ошибка при посещений сайтов онлайн банкинга, которые содержат биржевые бегущие строки, особые панели инструментов и формы ввода данных.
Как исправить ошибку загрузки компоненты?
Итак, есть несколько путей, позволяющих обойти запрет загрузки веб-ресурсов. Мы нашли наиболее простые решения данной проблемы, поэтому пробуйте все их по-пунктам:
- Сразу замечу, для начала выполните банальную перезагрузку сайта, через Ctrl+F5;
- Вторым пунктом будет добавление сайта в список безопасных. Для этого жмите на Шестеренку и выбирайте “Свойства браузера”, а дальше сделайте все по предоставленному ниже рисунку. После добавления – перезагрузите веб-сайт.
Исправляем ошибку ActiveX-компоненты в IE
Если это вам не поможет, тогда нужно углубиться в настройки IE. Пройдите опять по пути: Свойства браузера – вкладка Безопасность. Под опцией “Включения защищенного режима”, есть кнопка “Другой” – жмите на неё. Пролистайте вниз до Элементов ActiveX. Дальше Включите все пункты, указанные в списке:
Настройка элементов Активекс
Заключение
Если все эти варианты не помогли, тогда стоит обратиться в поддержку ресурса. Если на этих сайтах возникают подобные сбои, то вполне вероятно, что есть собственные решения в данной ситуации. Надеюсь вы поняли что делать с ошибкой “Загрузка ActiveX-компонента не была выполнена” и как можно её исправить простыми способами.