Что такое код activex


Содержание

Что такое код activex

Технология ActiveX, рассматриваемая в данной статье, базируется на технологии Microsoft COM (Component Object Model — модель компонентных объектов), позволяющей создавать и использовать программные компоненты, предоставляющие различные сервисы другим приложениям, компонентам и операционной системе. COM представляет собой одну из реализаций концепции распределенных вычислений, базирующейся в общем случае на предоставлении возможности приложениям использовать для расширения своей функциональности готовые компоненты и объекты (иногда они называются сервисами). Технология COM позволяет использовать объектно-ориентированный подход не в рамках одного приложения, а в рамках операционной системы, но, в отличие от стандартных классов, определенных в исходном тексте и реализуемых как объекты в адресном пространстве одного процесса, эти компоненты могут в общем случае располагаться в адресных пространствах разных процессов и даже на разных компьютерах.

В настоящее время существуют три типа спецификаций COM, определенных Microsoft и включающих большое количество интерфейсов и функций:

  • OLE-документы — составные документы, содержащие внедренные или связанные объекты. Эта спецификация описывает правила создания контейнеров для таких документов с «активацией по месту». Отметим, что компонент OLEContainer Delphi и C++Builder создан с учетом этой спецификации (этой теме будет посвящена одна из следующих статей данного цикла).
  • OLE Automation. Эта спецификация описывает, как создать сервер и контроллер, управляющий его поведением с помощью скриптов или макросов. Эта спецификация также поддерживается Delphi и C++Builder (об этом также пойдет речь в ближайших статьях данного цикла).
  • Управляющие элементы ActiveX, использующие специальный вариант протокола Automation (о них-то и пойдет речь в данной статье).

Использование COM, и, в частности, технологии ActiveX, позволяет обеспечить создание приложений, собираемых из готовых компонентов — элементов управления ActiveX, отличающееся от привычной пользователям C++Builder или Delphi разработки приложений с помощью VCL-компонентов тем, что такая «сборка» не зависит от того, на каком языке написаны как готовые компоненты, так и использующее их приложение — лишь бы средство разработки поддерживало возможность использования таких компонентов в разрабатываемом приложении (такое приложение обычно называется контейнером).

Элементы управления ActiveX представляют собой библиотеки, содержащие исполняемый код. Как было сказано выше, эти библиотеки могут быть использованы в различных приложениях как встроенные элементы управления, поэтому они обладают свойствами, событиями и методами, доступными посредством автоматизации. Современные средства разработки, как правило, позволяют включать такие элементы в создаваемые с их помощью приложения. Помимо этого, элементы управления ActiveX нередко используются в качестве расширений web-броузеров с целью придания им дополнительной функциональности, например, для отображения документов, отличных от поддерживаемых данным броузером.

Как любой COM-сервер, элемент управления ActiveX обладает уникальным идентификатором GU >Таким образом, создав элемент управления ActiveX, обладающий интересующей Вас функциональностью, Вы можете в дальнейшем позволить его пользователям встраивать этот элемент в свои приложения (например, написанные на Visual Basic, PowerBuilder, Delphi, C++Builder и др.), отображать его в web-броузере в составе выгруженной с Вашего web-сервера HTML-страницы, включать его в состав документов MS Office, при этом Вы не обязаны предоставлять исходный текст этого компонента.

Когда следует создавать управляющие элементы ActiveX? Естественно, в тех случаях, когда функциональность, содержащаяся в таком элементе, уникальна. Нет смысла создавать ActiveX, реализующий функциональность кнопки или текстового редактора — таких элементов управления, в том числе выполненных в виде ActiveX, на рынке готовых компонентов более чем достаточно. Нет смысла также создавать ActiveX, если он будет использоваться только в C++Builder — в этом случае проще создать VCL-компонент, который будет работать в использующем его приложении значительно быстрее, чем аналогичный ActiveX. Но создание элемента управления, реализующего, к примеру, часть автоматизированного рабочего места какой-либо категории сотрудников Вашего предприятия может в ряде случаев оказаться весьма полезным, особенно в следующих двух случаях. Первый случай — использование на предприятии различных средств разработки, например, C++Builder и Visual Basic; в этом случае разработчик, использующий Visual Basic, может встраивать в свои приложения ActiveX, созданный другим разработчиком и реализующий какую-либо функциональность, используемую несколькими различными автоматизированными рабочими местами. Второй случай — широкое использование Internet или intranet при автоматизации предприятия. В этом случае ActiveX, реализующий подобную функциональность, может быть встроен в HTML-страницу и отображен в web-броузере. Такой подход существенно облегчает решение проблемы обновления версий автоматизированных рабочих мест, так как вместо установки новых версий на рабочих станциях достаточно заменить один экземпляр ActiveX, хранящийся на web-сервере. Наиболее ярким примером такого подхода может быть выполненный в виде ActiveX «тонкий» клиент, получающий данные от удаленного сервера приложений, являющегося, в свою очередь, клиентом серверной СУБД.

Такой набор преимуществ сделал эту технологию за последние два года весьма популярной, и именно поэтому многие современные средства разработки, такие, как Delphi или С++Builder, позволяют создавать элементы управления ActiveX. Эти средства обычно имеют встроенные механизмы поддержки спецификации ActiveX с помощью автоматической генерации соответствующего кода (хотя, конечно, не возбраняется писать подобный код вручную).

Спецификация ActiveX представляет собой набор правил (а именно описание стандартных интерфейсов), с помощью которых следует создавать такие элементы управления. Отметим, что текущая версия этой спецификации учитывает возможность использования в качестве контейнера web-броузеров и необходимость загрузки элементов ActiveX с удаленных web-серверов с их автоматической регистрацией.

2 Создание элементов управления ActiveX на основе VCL-компонентов

Как было сказано выше, C++Builder 3 позволяет создавать элементы управления ActiveX на основе VCL-компонентов. Для этой цели используется библиотека Microsoft ATL (Active Template Library), являющаяся на сегодняшний день индустриальным стандартом и позволяющая создавать элементы ActiveX, представляющие собой скомпилированный код и не требующие дополнительных run-time-библиотек для их выполнения. Процесс создания такого элемента управления весьма прост.

Для создания элемента управления ActiveX следует выбрать из репозитария объектов страницу ActiveX и далее — элемент ActiveX Control.

Далее следует заполнить появившуюся диалоговую панель:

Рис.1. Выбор имени ActiveX, имен модулей и базового VCL-класса

Следует выбрать VCL-компонент, на основе которого будет создан элемент ActiveX. В качестве примера выберем TCalendar.

Отметим, что при выборе опции Include Design-Time Licence автоматически будет сгенерирован файл с расширением *.lic, без которого данный ActiveX нельзя будет использовать ни в каких средствах разработки, но можно поставлять с готовыми приложениями. Использование такого файла бывает удобно в случае, когда ActiveX поставляется бесплатно его автором в составе готового продукта, но требует отдельного лицензирования при встраивании его другими пользователями в свои разработки.

В результате работы ActiveX Control Wizard будут созданы несколько модулей, сгенерирован уникальный идентификатор (GUID) будущего ActiveX, а также соответствующая библиотека типов.

Рис.2. Проект библиотеки ActiveX в С++Builder

Библиотека типов содержит сведения о свойствах, событиях и методах компонента ActiveX, унаследованных от исходного VCL-компонента.

Рис.3. Библиотека типов созданного элемента ActiveX

В коде, связанном с реализацией ActiveX, можно найти описание этих свойств и методов.

Далее следует сохранить и скомпилировать проект и зарегистрировать элемент ActiveX в реестре. Это делается с помощью выбора пункта меню Run/Register ActiveX Server.

После этого можно протестировать созданный ActiveX-компонент, открыв его, например, в Visual Basic. Отметим, что последние версии именно этого средства разработки широко используют элементы управления ActiveX в качестве составных частей создаваемых с их помощью приложений; фактически приложения Visual Basic собраны целиком из ActiveX-компонентов. Более того, спецификация ActiveX создана с учетом того, что в первую очередь Visual Basic и Visual C++ (и лишь затем остальные средства разработки) могут быть контейнерами для этих элементов управления. Поэтому тестирование поведения ActiveX в VisualBasic может более или менее гарантировать, что в других средствах разработки этот управляющий элемент будет вести себя точно так же.

В случае отсутствия Visual Basic можно воспользоваться и более широко распространенным Visual Basic for Applications. С этой целью можно запустить Microsoft Word 97, создать новый документ и выбрать на панели инструментов кнопку «Редактор Visual Basic». Далее следует выбрать в окне «Project» имя вновь созданного документа, щелкнуть по нему правой кнопкой мыши и из полученного контекстного меню выбрать опцию «Вставить/UserForm». На экране появится редактор форм Visual Basic и панель элементов. Далее нужно щелкнуть правой клавишей мыши по панели элементов и выбрать из контекстного меню опцию «Дополнительные элементы». Теперь следует из появившегося списка всех зарегистрированных элементов управления ActiveX выбрать нужный, и он автоматически окажется на панели элементов Visual Basic (можно поместить его на единственную имеющуюся страницу управляющих элементов или создать свою, выбрав опцию «Создать страницу» из контекстного меню ярлычков блокнота, расположенного на панели элементов).

После этого можно поместить наш ActiveX на форму и попытаться изменить какие-либо его свойства, используя для этой цели окно «Свойства».

Рис.4. Тестирование ActiveX в Visual Basic

И, наконец, можно вернуться в редактируемый документ, поместить на него кнопку, дважды щелкнуть по ней и в окне редактора кода создать процедуру, показывающую созданную форму, вписав в сгенерированный код строку UserForm1.Show :

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Теперь можно нажать на панели инструментов «Visual Basic» кнопку «Выход из режима конструктора». После этого нажатие на созданную в теле документа кнопку приведет к появлению диалоговой панели с созданным нами элементом управления.

Можно было бы, конечно, протестировать поведение созданного ActiveX, установив его в палитру компонентов Delphi или C++Builder,, но это не самый лучший способ тестирования — ведь в основе создания нашего ActiveX лежит та же самая библиотека VCL, что и в основе создаваемого приложения для тестирования ActiveX. Использование для этой цели любого не имеющего отношения к VCL средства разработки, способного использовать элементы управления ActiveX в создаваемых приложениях, более оправдано. При этом следует заметить, что Visual Basic for Applications представляет собой наиболее часто встречающееся средство разработки такого класса, так как входит в состав самого популярного в нашей стране офисного пакета.

3 Создание страниц свойств

Так как элементы управления ActiveX могут быть использованы в средствах разработки, нередко они обладают набором страниц свойств, позволяющим пользователям менять те или иные свойства этого элемента управления.

Для создания страницы свойств выберем из репозитария объектов страницу ActiveX и элемент Property Page. В результате получим форму, на которой можно размещать интерфейсные элементы.

Создадим страницу для редактирования свойств CalendarDate и GridLineWidth. Для этого разместим на вновь созданной форме два компонента TStaticText и два компонента TEdit.

Рис.5. Страница свойств на этапе проектирования

В созданной форме имеются сгенерированные прототипы обработчиков событий UpdatePropertyPage и UpdateObject. Добавим в них соответствующий код:

Далее следует создать ссылку на странице свойств в модуле, описывающем реализацию элемента ActiveX. С этой целью следует модифицировать h-файл .Модификация кода заключается во вставке строки, указывающей на необходимость регистрации страницы свойств:

Следует также включить ссылку на h-файл страницы свойств в h-файл реализации ActiveX.

Далее следует заново скомпилировать библиотеку ActiveX и зарегистрировать ее.

Если теперь в среде разработки Visual Basic поместить на пользовательскую форму наш ActiveX и выбрать страницу свойств «Специальные», получим созданную нами страницу:

Рис.6. Страница свойств на этапе тестирования ActiveX

При изменении значений в компонентах TEdit можно убедиться, что изменяются и соответствующие свойства элемента ActiveX.

Рис.7. Результат использования страницы свойств

4 Создание активных форм

Активная форма — это элемент управления ActiveX, содержащий несколько VCL-компонентов. Возможность создания таких элементов управления позволяет существенно расширить круг доступных для элементов ActiveX функциональных возможностей. Создание такого ActiveX происходит примерно так же, как и создание обычного приложения.

Попробуем создать простейший пример такого элемента управления. Для его создания следует выбрать со страницы ActiveX репозитария объект ActiveForm, ответить на вопросы об имени компонента, после чего в дизайнере форм получим пустую форму — заготовку будущего ActiveX. Добавим на эту форму компоненты TCheckBox, TButton, TImage и TOpenPictureDialog.

Рис.8. Активная форма на этапе проектирования

Создадим обработчики событий, связанных с TCheckBox и TButton:

Теперь можно скомпилировать приложение, зарегистрировать созданный ActiveX и протестировать его указанным выше способом.

Рис.9. Тестирование активной формы в Visual Basic

Можно также протестировать созданный ActiveX c помощью отображения его в Internet Explorer. Для этой цели можно выбрать пункт меню Project/Web Deployment Options и на странице Project в полях Target dir, Target URL, HTML dir этого диалога указать имя какого-нибудь локального каталога.

Затем можно выбрать опцию Project/Web Deploy и по окончании работы Web Deployment Wizard открыть в Internet Explorer автоматически сгенерированную С++Builder html-страницу c именем, совпадающим с именем созданного проекта:

Рис.10. Тестирование активной формы в Internet Explorer

Отметим, что для успешного отображения ActiveX в броузере требуется Microsoft Internet Explorer версии 3.0 и выше, при этом настройки уровня безопасности должны позволять запуск активного содержимого, расположенного в Intranet-зоне. Если в качестве броузера используется Netscape Navigator, он должен быть оснащен модулем расширения (plug-in), позволяющим интерпретировать тег языка HTML как элемент управления ActiveX (естественно, такая возможность существует только для версий Navigator, выполняющихся под управлением 32-разрядных версий Windows). Отметим также, что сгенерированную автоматически страницу можно в дальнейшем отредактировать с помощью любого html-редактора (или даже любого текстового редактора).

При поставке ActiveX через Web процедура аналогична описанной, но вместо локальных каталогов в строке URL следует указать Internet-адрес Web-сервера:

Рис.11. Настройка опций поставки ActiveX через Internet

Помимо этого, следует обратить внимание на дополнительные «пакеты» или другие файлы, которые следует включить в поставку, если опции проекта таковы, что требуют использования каких-либо дополнительных библиотек.. Разделение ActiveX на несколько файлов и выделение отдельных пакетов может быть использовано для того, чтобы уменьшить в целом время загрузки ActiveX через Internet, например, в случае предстоящей необходимости обновления версии ActiveX или при поставке нескольких разных ActiveX — в этом случае часть «пакетов» может быть установлена один раз, а далее производится поставка лишь небольшой содержательной части элемента ActiveX. Впрочем, не возбраняется создавать ActiveX и в виде одного файла. Отметим также, что при выборе опции Include CAB File compression можно собрать используемые файлы в один файл с расширением *.cab, фактически представляющий собой архив, что также уменьшает примерно в два раза время загрузки файлов через Internet.

Следует отметить, что в активных формах можно использовать практически все компоненты C++Builder, кроме TMainMenu. Возможна также динамическая генерация дополнительных форм на этапе выполнения, при этом дополнительные формы уже не будут содержаться в контейнере, а будут представлять собой обычные формы Windows (и, естественно, могут содержать в том числе и TMainMenu).

В заключение отметим, что, редактируя библиотеку типов, можно к созданным ActiveX добавлять свойства и методы и затем описывать их реализацию в соответствующем модуле.

Технологии ActiveX

ActiveX — технология Microsoft, предназначенная для написания сетевых приложений. Она предоставляет программистам наборы стандартных библиотек, значительно облегчающих процесс кодирования. Если раньше при написании программ использовались механизмы OLE (OLE Automation, OLE Documents, OLE Controls. ), основанные на компонентной объектной модели (COM — Component Object Model), то теперь библиотеки OLE переписаны так, чтобы обеспечивать функциональность, достаточную для написания сетевых приложений. Таким образом, теперь при написании программ используется DCOM (Distributed Component Object Model) — распределенная компонентная объектная модель, а реализуют ее библиотеки ActiveX, которые по объему оказались гораздо меньше, чем библиотеки OLE, а по скорости — быстрее. Сохранилась и совместимость — любой программный компонент OLE будет работать с библиотеками ActiveX.

Поскольку самым динамично развивающимся направлением в компьютерной индустрии является Internet, именно здесь наиболее естественно могут найти свое место программы, написанные с использованием технологии ActiveX. Не случайно в последнее время понятия ActiveX и Internet часто встречаются рядом. В то же время технология ActiveX имеет значительно более универсальную область использования.

Стандарт ActiveX позволяет программным компонентам взаимодействовать друг с другом по сети независимо от языка программирования, на котором они написаны. С помощью ActiveX можно «оживить» страницы Web эффектами мультимедиа, интерактивными объектами или сложными приложениями. ActiveX обеспечивает некий «скрепляющий раствор», с помощью которого отдельные программные компоненты на разных компьютерах «склеиваются» в единую распределенную систему.

ActiveX включает в себя клиентскую и серверную части, а также библиотеки для разработчика:

программные элементы ActiveX — компоненты, работающие на компьютере-клиенте, но загружаемые в первый раз с сервреа Web. С их помощью можно демонстрировать разнородную информацию, включающую видео и звук без запуска дополнительных программ. Более того, эти программные компоненты могут использоваться в приложениях, написанных на любых популярных языках программирования, включая Java (Visual J++), Visual Basic, Visual C++.

Active Scripting поддерживает любой популярный макроязык, включая Visual Basic Script и JScript (реализация компанией Microsoft языка сценариев JavaScript). Макроязыки могут использоваться для объединения на одной странице нескольких программных элементов ActiveX или Java, обеспечивая их взаимодействие между собой.

Документы ActiveX позволяют открыть и обрабатывать в окне Microsoft Internet Explorer документ любого формата (например, файл Microsoft Excel или Word).

Виртуальная машина Java позволяет любой программе просмотра Internet, поддерживающей технологию ActiveX (например, Internet Explorer 3.0) выполнять программные компоненты Java и обеспечивать их взаимодействие с программными компонентами ActiveX.

ActiveX Server Framework обеспечивает серверные функции ActiveX, включая поддержку безопасных соединений, доступ к базам данных и другие.

Средства разработки позволят использовать знакомые системы программирования Microsoft и других фирм для создания компонентов ActivX. К их числу относятся Visual Basic, Visual C++, Macromedia Shockwave, Adobe Photoshop, Borland Delphi, средства программирования Sybase и другие.

Основные преимущества использования технологии ActiveX:

Быстрое написание программного кода. Программирование сетевых взаимодействий становится очень похожим на программирование для отдельного компьютера.


Открытость и мобильность. Спецификации технологии недавно были переданы в Open Group как основа открытого стандарта. Кроме того, Microsoft совместно с компаниями Metrowerks и Bristol заканчивает реализацию технологий ActiveX для платформ Macintosh и UNIX.

Возможность написания приложений с использованием знакомых средств разработки. Программные элементы ActiveX могут быть созданы с помощью Visual Basic, Visual C++, Borland Delphi, Borland C++, любых средств разработки на Java.

Большое количество уже существующих программных элементов ActiveX, которые бесплатно могут применяться на серверах Web и в приложениях независимых разработчиков. Кроме того почти любой программный компонент OLE совместим с технологиями ActiveX и может применяться без модификаций в сетевых приложениях.

Стандартность. Технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java) с одной стороны и стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).

Клиентская технология ActiveX (Active Desktop)

ActiveX реализуется на машине-клиенте с помощью библиотек, поставляемых вместе с Internet Explorer 3.0. В дальнейшем эти библиотеки будут дополняться и переписываться, в частности, наиболее значимые обновления этих библиотек на клиенте следует ожидать после выхода NetShow, продукта, предназначенного для оптимальной передачи по сети данных мультимедиа.

Программные компоненты ActiveX могут быть установлены автоматически на компьютер пользователя по сети с удаленного сервера, причем будет загружен код, подходящий для конкретной платформы клиента, будь то Macintosh, Windows или Unix. Разработчик Web-страниц может либо сам запрограммировать элементы ActiveX, используя популярные языки программирования Visual C++, Visual Basic или Java, либо использовать существующие. Примеры готовых программных элементов можно найти по адресу http://www.microsoft.com/activeplatform/default.asp.

Используя языки сценариев ActiveX, программисты могут обеспечить взаимодействие различных элементов ActiveX, Java, других программ на клиентском компьютере и различных частей самого Internet Explorer. Например, программный элемент синхронизации может обновлять страницу Web через определенные промежутки времени. Можно также периодически запускать программный элемент, привлекающий внимание пользователя. Имеются реализации Visual Basic Scripting Edition, являющегося подмножеством Visual Basic, и JScript. Кроме того, разработчик может написать интерпретатор собственного языка сценариев и добавить его в систему.

С ActiveX Documents знаком каждый, кто работал с составными документами. С помощью Internet Explorer можно работать, например, с таблицами Microsoft Excel и файлами других офисных приложений. Это делает программу просмотра универсальным средством, способным не только отображать файлы в формате HTML и осуществлять переходы по ссылкам, но и поддерживающим работы с документами любых приложений и даже запуск программ.

Серверная технология ActiveX (Active Server)

Серверная часть технологии ActiveX реализована с помощью Microsoft Internet Information Server 3.0. С помощью ActiveX можно писать программы на языках сценариев (сейчас это VBScript), выполняющиеся на сервере. Если раньше разработчикам приходилось использовать такие средства, как Microsoft Visual C++ для написания динамически загружаемых библиотек, использующих специальные вызовы Internet Server API, то теперь возможно написание приложений на языке сценариев. Это существенно упрощает разработку, сокращает время написания программы и минимизирует затраты. Программы, основанные на технологиях Active Server на порядок производительнее программ, основанных на Common Gateway Interface (CGI). Это достигается оптимизацией процессов ActiveX на сервере, учитывающей архитектуру Windows NT.

С помощью языков сценариев на сервере можно осуществлять доступ к системам управления базами данных, поддерживающим стандарт ODBC, и использовать механизм транзакций.

Поскольку подход к использованию технологий ActiveX на сервере стандартизован, программисты могут не только разрабатывать приложения, способные выполняться на серверах, но и реализовывать свои схемы взаимосвязи серверных приложений и сервисов, создавать собственные интерпретаторы серверных языков сценариев. Для этого требуется предварительное приобретение лицензии у Open Group.

Что такое код activex

Когда Вы работаете с Visual Basic, вы используете разные готовые элементы — ComboBox, Таймер и т. д. Они расположены на панели инструментов.

Так вот, вы можете не только использовать встроенные элементы, но и делать свои. Именно они и называются ActiveX-элементы, и именно их мы и научимся делать.

ActiveX-элементы не зависят от языка программирования. Вы можете написать ActiveX на Visual C++ или на Visual Basic, и затем использовать в Delphi или в Internet Explorer. Все современные языки программирования поддерживают ActiveX. Всё это относится вообще-то к более обширной теме COM-технологий.

Урок 2. Начинаем делать ActiveX

Запускаем Visual Basic. В появившемся диалоге New Project выбираем ActiveX Control (если диалог не появился при запуске Visual Basic’а, то выбирем меню File->New Project).

На экране появится UserControl1, у которого вы сразу для удобства уменьшите размеры

UserControl — это как бы форма, только не для программы, а для ActiveX-элемента. Именно на ней мы и будем создавать наш ActiveX — создавать его внешний вид. При этом мы можем пользоваться как готовыми другими элементами, так и рисовать с нуля. Потом этот UserControl с созданным ActiveX на нём мы будем располагать на обычных формах Visual Basic’а.

Обратите внимание на то, что в проекте у нас UserControl обозначен особым значком

В качестве первого ActiveX мы сделаем квадратик, для которого мы сможем задать цвет (красный или синий). Это будет свойство. Кроме того мы добавим для него метод, меняющий цвет на противоположный. И, наконец, при щелчке левой кнопкой мыши на нашем квадратике наступит наше событие MyClick. Его мы тоже сделаем, и тогда тот, кто будет использовать этот ActiveX, сможет в обработчике этого события написать любой код.

Урок 3. Добавление свойства к ActiveX’у

Сейчас мы добавим свойство к нашему ActveX-элементу.

Сначала определим внутреннюю переменную, ответственную за цвет. Но цвета нас всего два, так что лучше всего сначала ввести новый тип MyColor, и затем завести переменную такого типа:

Переменную мы завели как Private. Снаружи она видна не будет. Но нам нужен доступ к ней. Для этого пишем слудующий код:

Эти два метода уже у нас Public. Имя, под которым наше свойство будет видно снаружи, можно взять любое. Мы взяли Color. Первый из этих методов служит для записи свойства Color для нашего ActiveX-элемента, второе — для его чтения.

В принципе можно было и не возиться с методами Property Get и Set, а просто объявить переменную m_blnColor как Public. Но это было бы не очень хорошо. По правилам объектно-ориентированного программирования переменные внутри объекта болжны быть закрытыми, и доступ к ним должен быть через специальные методы. Как мы и сделали.

Урок 4. Добавление тестового проекта для ActiveX

Теперь добавим тестовый проект. Почему? Потому что ActiveX-элемент не может существовать сам по себе. Он существует на чём-то (на форме, например). Поэтому то для испытаний нам и нужен тестовй проект.

Зайдите в меню File и выберите Add Project

В появившемся диалоге выберите Standard EXE.

Обратите внимание, что в окне проекта добавится еще один обычный проект

Сейчас мы сделаем наш тестовый проект главным. Это означает, что именно он будет запускаться при компиляции (т. е. при нажатии F5). Для этого щелкните на его имени правой кнопкрй мыши и в контекстном меню выберите Set as Start Up.

Теперь наш тестовый проект главный. Об этом говорит то, что он обозначен полужирным шрифтом.

Обратите внимание, что на панели элементов добавился наш элемент

Теперь щелкните на тестовой форме Form1, так, чтобы она расположилась сверху всех окон и затем двойным щелчком на нашем ActiveX’е на панели элементов расположите на форме наш новый элемент.

Выделите его на форме и обратите внимание, что в окне свойств есть наше свойство Color, причем для него можно выбрать только два значения

Урок 5. Работа с двумя проектами

Сейчас мы с вами посмотрим, как Visual Basic позволяет работать с несколькими проектами. Сейчас у нас два проекта — в одном мы конструируем наш ActiveX, и в другом мы его испытываем. При этом мы постоянно вносим изменения в ActiveX-проект, и хотим, чтобы они отражались в тестовом проекте.

Давайте внесем некоторые изменения в код нашего ActiveX’а. Вспомним, что мы хотели, чтобы его цвет был красным или синим в зависимости от его свойства Color. Сейчас такое свойство есть, но оно ни как неотражается на внешнем виде элемента. Изменим это. Для сего внесите следующие изменения в код:

Здесь мы анализируем, что за цвет задан в качестве параметра, и устанавливаем его в качестве цвета для формы.

Смотрим теперь, как внесённый код отразится на нашем тестовом проекте. В окошке проекта делаем двойной щелчок на форме тестового проекта Form1.

Появляется наша тестовая форма. Но на ней наш элемент будет заштрихованным. Это означает, что сейчас мы с ним работать не можем.

Для того, чтобы изменить ситуацию, закройте окошко UserControl1 в проекте с разрабатываемым ActiveX-элементом. Теперь на тестовой форме наш ActiveX уже без штриховки.

Кстати, на панели элементов у нас было тоже самое — пиктограмма для нашего элемента сначала была серая а затем стала нормальной

Таким образом для работы с тестовым проектом вы должны закрыть форму с разрабатываемым ActiveX-элементом.

Можете сейчас запустить тестовый проект, нажав F5. Должна появится форма с цветным прямоугольником на ней.

Урок 6. Добавление метода к ActiveX’у

Добавим теперь к нашему ActiveX метод. Наш метод будет устанавливать цвет. Для добавления метода внесите следующий код в наш ActiveX-элемент (но не в код тестового проекта. Не перепутайте!):

Мы объвили наш метод как Public. Т. е. он будет виден снаружи.

Давайте испытаем его в тестовом проекте. Сделайте тестовый проект активным, добавьте на него кнопку и в коде этой кнопки напишите следующий код:

Т. е. при нажатии на наше кнопку цвет элемента станет синим. Запустите тестовый проект и убедитесь, что при щелчке на кнопке ActiveX становится синим.

Обратите внимание, что наш метод появлялся в подсказке для нашего кода

С добавлением метода всё.

Урок 7. Работа с группой проектов

Когда вы работаете с несколькими проектами, то Visual Basic создает файл группы проектов. У этого файла расширение *.vbg (Visual Basic Group)

Когда вы хотите открыть в Visual Basic группу проектов, то вы должны сделать в Проводнике Windows двойной щелчёк именно на файле группы (с расширением *.vbg).

Группу проектов вы используете когда вам надо одновременно работать с несколькими проектами. Например один с разрабатываемым ActiveX’ом, а другой тестовый, как у нас.

Урок 8. Добавление события к ActiveX’у

Посмотрим теперь, как мы можем добавить событие к нашему ActiveX’у.

Для этого, во-первых, мы должны в коде нашего ActiveX’а соответствующее событие объявить:

Теперь нам надо указать, когда это событие возникает. Мы хотим чтобы оно возникало при щелчке на нашем ActiveX’е. Но его-то мы рисуем на UserControl. А у UserControl есть уже событие Click

Им-то мы и воспользуемся. Добавьте следующий код для ActiveX-элемента:

Строка RaiseEvent MyClick говорит, что в этом месте должно возникнуть событие MyClick, которое мы ввели для нашего ActiveX’а. Обратите внимание, что при написании этого кода у нас возникла подсказка

Подсказка возникла, естественно, потому, что мы это событие в нашем ActiveX’е объявили.

Все, теперь у нашего ActiveX’а есть событие. Проверим это в тестовом проекте. Перейдите в код для тестового проекта и убедитесь, что событие MyClick присутствует

Напишите теперь для события MyClick тестового проекта следующий код:

Запустите тестовый проект (клавиша F5). При щелчке на нашем прямоугольнике возникает соответствующий MessageBox

И в обработчике для события MyClick можно написать всё, что угодно. Это уже не код ActiveX’а, а код программы, его использующей. Мы делаем это точно также, как и для, скажем, события Click для обычной кнопки — что хотим, то и пишем.

Урок 9. Компиляция ActiveX

Настало время откомпилировать наш ActiveX-элемент. После компиляции мы получим файл с расширением *.ocx. Его уже можно распространять и по другим компьютерам. Так что воспользоваться нашим ActiveX’ом можно будет и в других программах.
Компиляцию делаем естественным образом. Заходим в меню File, далее выбираем Make имя_проекта.ocx
Проследите только, чтобы из двух проектов — основного и тестового — был активен именно основной (тот, в котором мы и конструируем наш ActiveX). Иначе указанного пункта меню в нем не будет.
После компиляции в указанной вами при этом папке появится файл с откомпилированнным ActiveX-элементом. По размеру он будет не слишком большой, но он будет требовать присутствия на компьютере файла MSVBVM60.DLL. Этот файл требуют все программы, скомпилированные с помощью Visual Basic (версии 6). Он довольно-таки большой (больше 1 Мб), но почти на всех компьютерах с Windows присутствует. Но его может и не быть. Тогда ваш ActiveX работать не будет.


Урок 10. Сохранение свойств в PropertyBag

Все бы сейчас с нашим ActiveX хорошо, но вот беда — он не сохраняет свои свойства. Например, вы в тестовом проекте можете задать свойство Color равным Blue. Цвет нашего прямоугольника станет синим. Но как только мы запустим тестовую программу, то он опять будет красным. Кроме того, при закрытии тестовой программы (т. е. при возврате в режим разработки) наш прямоугольник опять будет красным. Сейчас мы посмотрим, как с этим бороться.
Для этого у нас существует объект такого типа как PropertyBag. Он служит как бы промежуточным хранилищем между двумя экземплярами нашего ActiveX-элемента — экземпляром этапа разработки и экземпляром этапа выполнения (это разные экземпляры!). Добираемся мы до него через UserControl, точнее через его события WriteProperties и ReadProperties
Внесите в них следующий код:

Прокомментируем его. Событие WriteProperties служит для записи свойств в объект типа PropertyBag. В качестве параметра в него передается объект PropBag типа PropertyBag. У этого объекта есть несколько методов. Один из них — WriteProperty — как раз и используется для записи некоторого свойства в PropertyBag. Это мы делаем в строке

У этого метода два параметра: первый — имя параметра (Color), второй — записываемое значение и третий (необязательный) — значение по умолчанию.
Для чтения нам надо использовать событие ReadProperties нашего UserControl. Здесь все аналогично, только кроме чтения значения для цвета мы ещё пишем код для отображения цвета фона для нашего прямоугольника.
Сейчас вы можете менять в тестовом проекте значение свойства Color, и при запуске программы цвет будет отображаться именно выбранным вами значением. И даже если вы выйдите из VB, и потом опять откроете наш тестовый проект, то значение для свойства Color будет именно то, которое вы выбрали!

Урок 11. Событие InitProperties для ActiveX

Когда вы размещаете некоторый стандартный элемент на форме, то части свойств присваивается значение по умолчанию (например, высота и ширина для кнопки). Для создаваемого нами элемента это не так (пока не так). Скажем, если мы разместим на тестовой форме наш ActiveX, то его свойству Color автоматически никакого значения не присвоится
Давайте изменим эту ситуацию. Для этого воспользуемся событием InitProperties для нашего ActiveX. Пишем в него следующий код:

Теперь при размешении на тестовой форме нашего ActiveX’а автоматически присвоится нужное свойство
При этом обратите внимание, что наш событие InitProperties воазникнет только один раз — а именно при размешении элемента на форме. При запуске программы, а также при повторном открытии проекта это событие возникать не будет. И это правильно — представьте себе, что оно возникало бы при каждом создании ActiveX’а (как вы помните, когда вы запускаете программу, то экземпляр ActiveX’а времени разработки умирает и создается новый экземпляр времени выполнения). Тогда, например, наш элемент всегда был бы красным, а это мы вовсе не хотим.
Есть и событие, которое возникает каждый раз при создании нового экземпляра ActiveX. Но об этом — в следующем уроке.

Урок 12. Событие Initialize для ActiveX

Если событие InitProperties для элемента ActiveX выполняеся только в момент первого создания элемента на форме, то событие Initialize имеет место каждый раз при создании экземпляра ActiveX-элемента. Говоря человеческим языком, это означает, что событие Initialize будет происходить по крайней мере в трех случаях:
Во-первых, в момент переноса ActiveX-элемента с панели элементов на форму.
Во-вторых, в момент запуска формы с ActiveX’ом.
И в-третьих, после закрытия тестовой формы и возврату к экземпляру ActiveX-элемента времени разработки.

Для того, чтобы посмотреть, как все это работает, добавьте в код нашего ActiveX следующие строки:

Запустите тестовый проект. В момент появления формы на экране раздастся Beep. Закройте форму. Опять вы услышите Beep (так как экземпляр ActiveX времени выполнения умер и создался экземпляр времени разработки). Создайте на форме ещё один ActiveX-элемент. Опять будет Beep. Закройте нашу группу проектов и откройте её опять. И в этом случае опять будет Beep.
Таким образом, код, помещённый в событие Initialize будет выполняться каждый раз, когда наш ActiveX создаётся.

Урок 13. Использование Control Interface Wizard

В этом уроке мы посмотрим, как использовать Control Interface Wizard. Эта утилита предназначена для построения заготовок для ActiveX-элементов. В этом уроке мы сделаем ActiveX, который будет запоминать, сколько раз на нем щелкнули. При первых трёх щелчках будет возникать событие Click, при дальшейших щелчках — NoClicks (последнее событие определено нами). Из свойств мы добавим свойство Clicks, которое будет считать число щелчков на нашем элементе. Это свойство на этапе времени выполнения будет доступно только для чтения. И, наконец, из методов мы добавим метод SetZero, который будет обнулять число щелчков. Таким образом мы с помощью мастера добавим и свойство, и метод и событие.
Запускаем Visual Basic. По умолчанию эта утилита не запущена. Для запуска выберите меню Add-Ins
В появившемся диалоге Add-Ins Manager выберите VB 6 ActiveX Ctrl Interface Wizard
Поставьте галочку рядом с Loaded/Unloaded. При желании можете поставить и галочку Load on Startup (если хотите, чтобы этот мастер загружался каждый раз вместе с Visual Basic)
После нажатия на OK в меню Add-Ins появится пункт ActiveX Control Interface Wizard
Выберите этот пункт меню. Появится мастер. Первый экран можете прочитать, а можете и не читать (ничего особо интересного там нет, так что в нем можно сразу поставить галочку Skip this screen in the future). Нажимаем Next. Появится экран мастера, в котором Вы должны задать, какие свойства, методы и события будут в вашем ActiveX элементе из стандартных
Часть из них уже по умолчанию включена в ваш ActiveX (они находятся в правом списке). Если вы хотите что-нибудь добавить или убрать, то понажимайте на кнопочки . Нажимаем Next. Появляется следующее окно. В нем мы добавляем для нашего ActiveX нестандартные свойства, методы и события. Для их добавления нажмите на кнопку New
Появится окно Add Custom Member.
Давайте в нем добавим свойство Clicks, метод SetZero и событие NoClicks, после чего нажмите OK. В окне мастера должны появится введенные вами методы, свойства и события
Опять нажимаем на Next. В следующем окне мастера нам придется остановиться. В нем мы должны определить, какие из свойств, методов и событий нашего ActiveX будут проектироваться на стандартные свойства UserControl’а (того, который служит базой для нашего элемента ActiveX). В большинстве случаев рекомендуется действовать так — выделить в левом списке всё, кроме добавленных нами свойств, событий и методов, затем в ComboBox Control выбрать UserControl. Но мы в целях эксперимента будем действовать не так. Указанную процедуру мы применим только для элементов списка Click, MouseDown, MouseMove, MouseUp. Потом посмотрим, на что повлияет наш выбор. Итак, выделите слева указанные элементы списка и выберите справа UserControl
Нажмите Next. В следующем окне мастера нам надо задать различные параметры для свойств, методов и событий нашего ActiveX. Для свойства Clicks выберите тип Integer, значение по умолчанию 0, и определите, что во время выполнения это свойство доступно только для чтения
Для метода SetZero установите тип возвращаемого значения в Variant. Это будет означать, что метод этот будет процедурой (если тип возвращаемого значения не Variant, то это будет функцией)
После этого нажимаем на Finish, затем читаем Summary и переходим к следующему уроку. Там мы уже будем разбираться с тем, что нам мастер написал.

Урок 14. Анализ кода Control Interface Wizard

Продолжаем прошлый урок. Давайте посмотрим, что за код породил мастер.
Следующие строки говорят нам о том, что в нашем ActiveX-элементе будут события Click, KeyDown, KeyPress и KeyUp (именно их мы и указали в Control Interface Wizard):

Вспомним, что указанные события нашего ActiveX мы отобразили на события UserControl. Это видно из сторок (и подобных им):

Далее мы определили собственное событие NoClicks. Оно тоже имеется:

Определённые на первом шаге мастера стандартные свойства BackColor, ForeColor, Enabled, Font и т. п. тоже присутствуют в нашем коде. Для каждого из них присутствует два метода — Property Get и Property Let (или Property Set для свойств-объектов типа Font), которые связывают наше свойство с соответствующей внутренней переменной. Например, для свойства BackColor мы имеем следующие строчки:

Кроме того мы определили свойство Clicks. Оно тоже присутствует в порожденном коде:

Обратите внимание на строчку:

Она говорит о том, что если мы находимся в режиме работы программы, то при попытке изменить значение свойства возникает ошибка с номером 382 (property cannot be set at run time). Как вы помните, это свойство при запуске программы мы сделали Read-Only.
Теперь о нашем собственном методе SetZero. Для него Control Interface Wizard вставил только заготовку (естественно, ведь что за код там должен быть, знаем только мы сами):

Урок 15. Дополняем код Control Interface Wizard’а

Теперь мы будем вносить в наш код дополнения. И это естественно — мастер пособен лишь на написание заголовок для наших функций. А всю начинку нам надо писать самим.
Напомним, что мы хотели, что бы наш ActiveX действовал так — при трех щелчках возникает событие Click, а при последующщих — NoClick. Для этого давайте изменим порожденный мастером код для UserControl_Click на следующий:

Теперь у нас возникает или событие Click, или NoClick, в зависимости от того, сколько раз мы уже щелкнули (количество щелчков хранится в переменной m_Clicks). С этой частью все.
Теперь займемся методам SetZero. Он должен просто обнулять число щелчков. Для этого измените порожденный мастером код следующим образом:

Все, теперь можно наш проект компилировать и использовать в любом проекте. После компиляции создайте новый проект типа Standard EXE. В нем зайдите в меню Project и далее выберите пункт Components. В появившемся диалоговом окне Components нажмите на кнопку Browse
Появится окно Add ActiveX Control
С его помощью найдите на диске наш откомпилированный ActiveX (у него расширение *.ocx), после чего нажмите на кнопку Open и затем на OK. Наш ActiveX появится на панели элементов
Добавьте его на форму, измените ее фон и внесите следующий код:

Добавьте еще на форму кнопку и напишите для нее код:

Запустите программу. При первых трех щелчках в заголовке формы будет появляться номер щелчка, при последующих — надпись No Clicks
При нажатии на кнопку все приводится в начальное состояние, и событие Click опять возникает при первых трёх щелчках.
Измените код для Command1_Click на

Теперь при запуске и последующем нажатии на кнопку возникнет ошибка 382 (так как свойство Clicks на этапе выполнения мы задали как свойство только для чтения)
Все работает, как и ожидалось.

Урок 16. Еще раз о PropertyBag

В уроке 10 мы использовали такой объект PropertyBag. Сайчас мы посмотрим, что за ним скрывается. Создайте новый проект типа Standard EXE и разместите на нем кнопку. Измените её свойство Caption на My title
Сохраните проект на диске (для формы оставьте имя по умолчанию Form1.frm).
Теперь закройте наш проект. Найдите на диске файл Form1.frm и откройте его в Блокноте. Среди строчек его кода вы увидите строчки, относящиеся к нашей кнопке:

Видите, в одной из строк записалось значение для нашего свойства Caption. И все свойства для всех элементов формы тоже записываются в файле Form1.frm. Он то и является тем самым загадочным объектом PropertyBag.
Как известно, ActiveX — элементы можно располагать и на WEB-страницах. Посмотрим, что будет являтся PropertyBag в этом случае. Запустите редактор HomeSite (или какой-нибудь редактор WEB-страниц). В HomeSite перейдите на вкладку Script панели QuickBar и нажмите на кнопку для ActiveX-элементтов
В появившемся диалоге выберите Microsoft UpDown Control 6.0 и нажмите на OK
Вы получите приблизительно следующий код:
. .
В строчках
и сохраняются разные свойства для нашего ActiveX-элемента. Таким образом в этом случае объектом PropertyBag будет сама WEB-страница.

Урок 17. Использование Property Page Wizard

Property Page Wizard предназначен для создания окна со вкладками для элемента ActiveX. Это позволит группировать связанные свойства в одном месте. Для использования Property Page Wizard вы должны его подключить. Для этого заходим в меню Add-Ins и выбираем Add-Ins Manager. В появившемся диалоге Add-Ins Manager выбираем VB 6 Property Page Wizard
Далее отмечаем галочку Loaded/Unloaded и нажимаем OK. В меню Add-Ins появится пункт Property Page Wizard. Щелкаем на нем. Появляется первое окно «Property Page Wizard — Introduction». В нем можно сразу поставить галочку Skip this screen in the future (В будущем не показывать этот экран). Нажимаем на Next. Появится очередное окно мастера — «Property Page Wizard — Select the Property Pages». Именно в нем мы определяем, сколько вкладок будет в нашем окне свойств и как они будут называться. Для добавления очередной вкладки нажмите на кнопку Add
Добавьте две вкладки. Дайте им названия page1 и page2. Нажимаем на Next. Появляется окно мастера «Property Page Wizard — Add Properties». В его левой части будет список возможных свойств нашего элемента ActiveX, а в правой — добавленные на предыдущем шаге вкладки
Для добавления свойства на соответствующую вкладку щелкните на ней, затем выберите нужное свойство из левого списка и нажмите на кнопочку со стрелкой право. Свойство должно перейти на соответствующую вкладку
Таким образом переносим все необходимые свойства, после чего нажимаем на Next. В появившемся последнем окне мастера нажимаем на Finish. Работа мастера закончена!
Теперь посмотрим результат работы мастера. Для этого перейдите в тестовый проект (если он у вас есть) или просто используем уже откомпилированный элемент ActiveX в каком-нибудь проекте. Щелкаем на нашем элементе ActiveX правой кнопкой мыши и в контекстном меню выбираем Properties. Для нашего ActiveX-элемента появится окно свойств со вкладками
Именно это мы и хотели сделать с помощью Property Page Wizard.

Урок 18. Добавляем окно About

Задача такая. Нам хотелось бы в каждый наш ActiveX прибавить окошко About, причем это окно должно появляться в окне свойств для нашего элемента ActiveX (как у многих ActiveX-элементов Microsoft). Делается это следующим образом: сначала прибавляем к нашему элементу ActiveX еще одну форму. Для этого в окне проекта щелкаем правой кнопкой мыши на нашем элементе ActiveX и выбираем в контекстном меню Add, затем Form
В появившемся диалоге «Add Form» выбираем Form и нажимаем на Open
Теперь в проекте нашего Active’а появилась новая форма (измените ее свойство Name на frmAbout)
Измените ее размеры и разместите некоторую информацию (использую label)
Сохраните проект. Новой форме дайте имя about.frm.
Добавьте в окно кода для нашего элемента ActiveX следующие строки:

Затем щелкните мышкой на только-что добавленной функции About, затем зайдите в меню Tools в редакторе VB и выберите там «Procedure Attributes». В появившемся окне Procedure Attributes убедитесь, что в combobox «Name» стоит именно About, и нажмите на кнопку Advanced, после чего выберите в combobox’е «Procedure ID» пункт AboutBox
Нажимаем OK. Теперь при размешении нашего ActiveX-элемента (например, в тестовом проекте) среди свойств элемента появится еще один — About
, при выборе которого и будет появляться сделанное нами окно About.

Урок 19. Добавление подсказок для свойств и процедур

Как правило, для свойств, методов и событий ActiveX элемента имеются подсказки. их можно увидеть, например, в Object Browser
Делаются они следующим образом: сначала щелкаем на окне кода, затем в меню Tools выбираем Procedure Attributes
В появившемся диалоге Procedure Attributes в combobox’е Name выбираем нужную процедуру (или свойство), и в поле Description пишем нашу подсказку
После таких действий наша подсказка появятся с том числе и в Object Browser

Урок 20. Регистрация и отмена регистрации элемента ActiveX

Сначала о регистрации. Способов существует несколько.
Во-первых, если вы пишете ActiveX сами, то он регистрируется автоматически при компиляции.
Во-вторых, если вы откуда-то взяли элемент ActiveX (т. е. файл с расширением *.ocx), то для регистрации наберите в командной строке (возможно, придется указать полный путь)

Третья возможность — если ActiveX расположен на WEB-страничке, то он зарегистрируется сам при посещении это странички (если, конечно, у IE установлено соответствующее разрешение).
Для отмены регистрации можно воспользоваться той же утилитой regsvr32 с ключем /u:

Урок 21. Раскладываем свойства по категориям

Свойства элемента ActiveX разбиваются на разные категории. Вы это видите на вкладке Categorized окна свойств
Вы тоже можете рассортировать свойства вашего ActiveX. Для этого в меню Tools выбираем Procedure Attributes (перед этим щелкните на окне с кодом для нашего ActiveX)
Далее в появившемся диалоге Procedure Attribute щелкните на кнопке Advanced. В появившемся combobox’е Property Cathegory выбираем нужную категорию из списка или впечатываем свою (предварительно выбираем нужное свойство в combobox’е Name)
После таких действий наше свойство оказывается в нужной категории

Урок 22. Задаем для ActiveX свою иконку

В этом коротком уроке мы продолжим наши украшательства. Все элементы ActiveX, которые мы делали до сих пор, имели стандартную иконку на панели элементов
Для задания своей иконки сначала создайте ее. Это должен быть рисунок 16 на 15 пикселей (можно использовать форматы *.bmp, *.jpg, *.gif). После этого задайте этот файл в свойстве ToolboxBitmap для элемента ActiveX
После этого на панели элементов наш ActiveX будет иметь собственную иконку

Урок 23. Как программно зарегистрировать и отменить регистрацию элемента ActiveX?

Умение программно зарегистрировать элемент ActiveX может пригодиться, например, при написании собственного инсталлятора. Делается это приблизительно так. Внутри файла с ActiveX (как правило, это файл с расширением *.ocx) есть две функции — DllRegisterServer (для регистрации) и DllUnregisterServer (для отмены регистрации). Вот их то и надо вызвать. Делаем это аналогично вызову API-функции. Приведем пример. Пусть у нас в каталоге D:\_VB\AXs\URLlabel имеется файл URLLabel.ocx с элементом ActiveX. Создадим обычный проект для Visual Basic (типа Standard EXE), разместим на форме две кнопки (cmdReg и cmdUnReg). В окне кода напишем следующее:

Теперь при нажатии на соответствующие кнопки элемент будет регистрироваться или сниматься с регистрации.
Для проверки можете создать и откомпилировать тестовый проект VB, использующий ActiveX-элемент из файла URLLabel.ocx. Если первой программой вы зарегистрировали ActiveX, то тестовая программа будет запускаться без проблем , а если вы сняли ActiveX с регистрации, то тестовая программа не запустится, и появится следующее окошко:

Урок 24. Другие типы ActiveX’ов

В предыдущих уроках мы с вами смотрели, как делать ActiveX-элементы. Их отличительная особенность в том, что они всегда должны существовать в некотором контейнере. Другая их особенность — они чаще всего видимы (имеют видимый интерфейс). Правда, их можно сделать невидимыми на этапе запуска программы (типа элемента таймер в VB), но они будут видимы по крайней мере на этапе разработки прогрммы.
Наряду с таким типом элементов ActiveX существуют и другие типы — ActiveX EXE и AxtiveX DLL. При их создании вы выбираете соответствующие иконки в окне New Project:
Они уже работают несколько по-другому. Для них не нужен контейнер. Внутри них могут содержаться свойства и методы. Другие программы могут создавать экземпляры ActiveX EXE или ActiveX DLL и, разумеется, могут их использовать — читать и изменять свойства, вызывать методы.
Отличие между ActiveX EXE и ActiveX DLL следующее — первые существуют в своем адресном пространстве, а вторые — внедряются в адресное пространство вызвавшей их программы. Это самое главное отличие меду ними. Из этого есть несколько следствий — например, ActiveX DLL работают быстрее ActiveX EXE. Есть и другие различия, которые мы будем рассматривать в наших уроках.
Еще два типа для ActiveX’ов — это ActiveX Document EXE и ActiveX Document DLL. Для их создания выбираем такие иконки
Что это такое и как это делать мы тоже посмотрим (но не в ближайших уроках).

Урок 25. Начинаем делать ActiveX DLL

Несколько ближайших уроков мы с вами посвятим созданию ActiveX DLL. Создайте пустой проект (типа ActiveX DLL, естественно)
Нажимаем на Open. Обратите внимание, что в Project Explorere’е у вас уже существует пустой класс Class1
Переименуйте его в окне свойств на CMyClass (для этого его надо предварительно выделить в Project Explorere’е). Измените также и имя нашего проекта с безликого Project1 на MyFirstDLL. Теперь все должно выглядеть так
Давайте теперь наш ActiveX DLL скомпилируем. Делаем как всегда — меню File, далее выбираем Make что-то там
В появившемся окне Make Project выберите нужную папку. Обратите внимание, что расширение для откомпилированного ActiveX DLL — это *.dll, а не *.ocx, как было у ActiveX элементов
Нажимаем на OK и переходим к следующему уроку.

Урок 26. Добавляем свойство и метод к ActiveX DLL

Давайте добавим к нашему ActiveX DLL свойство MyString. В нем будет храниться некоторая строка. Никакого особенного смысла в этой строке нет — мы просто смотрим, как можно добавлять свойства для нашего ActiveX DLL.
Для этого добавьте следующий код:

Обратите внимание, что переменную m_strMyString мы объявили как Private. Это для того, чтобы к ней не было доступа извне. Досту возможен только через специальные методы класса — Property Get имя_свойства и Property Let имя_свойства. Они идут парами — одно для чтения и другое для записи. имя_свойства (в нашем примере это MyString) — это то имя, под которым наше свойство будет видно снаружи. Имя же m_strMyString никто снаружи не увидит.
Теперь добавим метод. Вы можете считать методом функцию нашего класса, объявленную с модификатором Public. Все, что вы объявляете как Public, будет видно снаружи. Давайте добавим метод, который задаст для нешей строки некоторое значение:

Откомпилируйте наш ActiveX DLL и переходите к следующему уроку.

Урок 27.

Для испытания созданного нами ActiveX DLL создайте простой проект типа Standard EXE и добавьте на его форму простую кнопку. Далее заходим в меню Project и выбираем пункт References. Пользуясь кнопкой Browse, найдите откомпилированный на прошлом уроке файл, выделите его, нажмите на Open и на OK для закрытия окна References. Добавьте следующий код:

Обратите внимание, что после точки у вас будет появлятся подсказка с нашими свойствами и методами
Запускаем, нажимаем на кнопку.
Т. е. нашей тестовой программе удалось подсоединится к серверу ActiveX DLL.

Урок 28. Добавляем событие

У компонентов ActiveX DLL (как, впрочем, и у ActiveX EXE) кроме свойств и методов могут быть еще и события. Когда наш компонент генерирует некоторое событие, то программа, в которой он был создан, может как-то на это событие реагировать. Это не должно быть для вас чем-то новым — скажем у кнопки есть событие Click, а что там программист в этом событии напишет — так это его личное дело.
Для добавления события в элемент ActiveX добавьте строчку

Синтаксис здесь такой — сначала пишем ключевое слово event, затем — имя вашего события (назвать его можно как угодно, у нас оно названо TwoChanges). При этом у события могут быть и параметры, которые, естественно, пишем в круглых скобках.
Мы назвали событие TwoChanges(), и сделаем так, чтобы оно возникало при втором изменении переменной m_strMyString в нашем классе.
Событие у нас объявлено, но теперь его набо откуда-то вызвать. Делается это так. Заводим переменную для счетчика и обнуляем ее в событии Initialize:

Синтаксис здесь такой: для вызова события пишем RaiseEvent (это ключевое слово), после чего пишем имя вызываемого события (у нас это TwoChanges). У нас значение перемнной m_intCounter может изменяться в двух местах, поэтому и пишем наш код в двух местах. Правильнее надо бы его написать в отдельной функции, которую потом в двух местах вызвать. Но мы уж так написали, так пусть так и останется.
Компилируем и переходим к следующему уроку.

Урок 29. Вызываем событие в контейнере

Сейчас мы проверим событие из прошлого урока. Для этого создайте новый проект типа Standard EXE и добавьте на форму обычную кнопку. Далее подсоединяем наш AvtiveX DLL. Для этого заходим в меню Project и выбираем пункт References
В появившемся окне References найдите в списке библиотек нашу (мы назвали ее MyFirstDLL). Если ее там нет, то вам придется воспользоваться кнопкой Browse. После подключения библиотеки добавьте следующий код:

Обратите внимание, что мы объявляем переменную MyObject с ключевым словом WithEvents. Также обратите внимание, что после этого в левом combobox’е для окна кода появится пункт MyObject , а в правом combobox’е для окна кода появится пункт со всеми событиями для нашего объекта MyObject (если вы, разумеется, выбрали в левом combobox’е MyObject)
Добавьте в программу следующий код:

Запускайте программу. Нажмите на кнопку два раза. При первом нажатии ничего не произойдет, при втором выскочит ожидаемый MessageBox
Таким образом при втором изменении строки наш ActiveX DLL вызвал событие TwoChanges.

Урок 30. Что такое бинарная совместимость

Когда вы создаете элемент ActiveX, то при его модификации и перекомпиляции возможно возникновение проблем, связанных с различными его версиями. Одну из таких проблем мы сейчас и рассмотрим.
Создайте проект типа ActiveX DLL. В окно кода внесите только следующее объявление переменной:

Мы не собираемся делать сложный класс, так что для пояснения проблемы хватит и этого. Измените также имя проекта на Compatibility и имя класса на CCompatibility (через окно свойств).
Зайдите теперь в меню Project, выберите пункт Compatibility Properties, и в появившемся диалоговом окне перейдите на вкладку Component
Обратите внимание, что в этом окне отмечена радиокнопка Project Compatibility
Закройте диалоговое окно, ничего в нем не меняя. Откомпилируйте наш ActiveX DLL. Создайте тестовый проект типа Standard EXE, добавьте ссылку на наш ActiveX DLL (если забыли, то смотрите урок 29).
В окно кода добавьте следующие строки:

После этого откомпилируйте тестовый проект (скажеи под именем test.exe) и запустите его. Как и ожидалось, при его запуске появится MessageBox с числом k (которое будет равно нулю).
Теперь давайте изменим наш ActiveX DLL. Добавьте еще одну переменную:

Откомпилируйте снова наш ActiveX DLL (под тем же именем). После этого запустите из окна Проводника откомпилированный тестовый проект test.exe. Должно возникнуть сообщение об ошибке
Произошло следующее — в нашем тестовом exe-файле содержался некий уникальный идентификатор (так называемый GUID) для нашего старого ActiveX DLL. Когда мы создали новый вариант для нашего ActiveX DLL, то ему присвоился новый GUID, но в тестовом exe-файле остался старый! Отсюда и сообщение об ошибке.
Для того, чтобы избежать эту проблему, надо было отметить в окне Project Properties радиокнопку Binary Compatibility
Если отмечена она, то при перекомпиляции элемента ActiveX (а это может быть любой ActiveX — и ActiveX Control, и ActiveX DLL, и ActiveX EXE) его GUID сохраняется, и таким образом старые проекты, котороые используют наш ActiveX, смогут работать как и прежде. Проблем не будет.


Урок 31. Свойство Persistable

У ActiveX’ов типа DLL и EXE существует свойство Persistable
Оно может принимать два значения — NotPersistable и Persistable. Если оно установлено в Persistable, то наш класс может сохранять свое состояние, если в NotPersistable — то не может. Обратите внимание, что если мы устанавливаем значение этого свойства в Persistable, то у класса в окне кода появляются новые события InitProperties, ReadProperties и WriteProperties

Элементы управления ActiveX и безопасность Office

Посетителей: 18004 | Просмотров: 20201 (сегодня 0) Шрифт:

Элементы управления Microsoft® ActiveX® в некоторых случаях могут представлять собой угрозу безопасности, поскольку с их помощью может распространяться вредоносный код или вирусы (особенно в тех случаях, когда на компьютере не настроены все необходимые параметры безопасности).

Например, если с веб-станицы загружается неподписанный элемент управления ActiveX, и при этом на компьютере не установлен уровень безопасности обозревателя Microsoft Internet Explorer Высокая (High) или Средняя (Medium), элемент ActiveX запустится без предупреждения. В том случае, если этот элемент содержит вирус или другой вредоносный код, работа операционной системы может быть нарушена, а содержащиеся на компьютере данные могут быть повреждены.

В этой статье содержится информация о том, что представляют собой элементы управления ActiveX, а также о том, как избежать проблем, связанных с установкой и использованием непроверенных элементов управления.

Что представляет собой элемент управления ActiveX

По существу элемент управления ActiveX является OLE- или COM-объектом. Элемент ActiveX – это программа, которая автоматически регистрируется в системном реестре при первом запуске.

Элемент управления ActiveX может быть как простым (как например текстовое поле), так и достаточно сложным (например, представлять собой ряд диалоговых окон). В некоторых случаях элемент ActiveX по сложности сравним с небольшим приложением. Модули ActiveX используются в качестве элементов управления на веб-страницах, в качестве надстроек, разрабатываемых сторонними производителями для крупных приложений, а также в качестве подключаемых модулей (plug-ins). С этой точки зрения элементы управления ActiveX аналогичны Java-приложениям, подключаемым модулям Netscape и выполняемым сценариям. Однако преимущество ActiveX по сравнению с другими возможностями программирования заключается в том, что элементы управления ActiveX могут использоваться в приложениях, написанных на различных языках, включая все языки, предназначенные для программирования баз данных Microsoft и управления ими.

Элементы управления ActiveX не являются самостоятельными решениями. Они могут быть запущены только из родительских приложений, таких как обозреватель Internet Explorer, приложения Microsoft Visual Basic®, среда разработки Visual C++® или Visual Basic for Applications и так далее. Модули ActiveX облегчают распространение специализированных элементов управления через сеть и интеграцию этих элементов в обозреватели веб-страниц. Элементы управления ActiveX могут предоставлять сведения о себе приложениям, в которых они используются.

Элементы управления ActiveX могут выполняться в виде сценариев веб-страниц. Это означает, что Вы можете создать или приобрести модуль ActiveX, представляющий собой элемент управления пользовательского интерфейса или элемент интерфейса графического устройства (Graphics Device Interface, GDI), а затем управлять им, программируя алгоритм его работы на языке сценариев (таком как VBScript или JavaScript™).

Параметры безопасности, связанные с инициализацией элементов ActiveX

На странице Specify Office Security Settings программ Custom Installation Wizard и Custom Maintenance Wizard доступны четыре уровня безопасности для элементов управления ActiveX:

MST- или CMW-файл не изменяет параметры безопасности, настроенные на компьютере пользователя. Новые приложения устанавливаются с уровнем безопасности по умолчанию Prompt user to use persisted data.

  • Prompt user to use control defaults

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется с параметрами по умолчанию, которые отключают для элемента ActiveX возможность использования и сохранения постоянных данных. Это приводит к тому, что элемент управления всегда запускается с параметрами по умолчанию, тем самым, снижая возможность возникновения проблем, связанных с ошибочными настройками компьютера или умышленным проведением атак. Если задан этот уровень безопасности, при запуске элемента ActiveX пользователю выдается предупреждение, но, тем не менее, оно может быть проигнорировано.

  • Prompt user to use persisted data

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется, используя связанные с ним данные, сохраненные ранее. Если задан этот уровень безопасности, при использовании элемента ActiveX существует возможность проникновения вирусов в систему.

Элемент ActiveX может запускаться c конфигурацией по умолчанию. Если задан этот уровень безопасности, то элемент ActiveX может использовать данные, сохраненные в предыдущих сеансах, а пользователь не получает никаких уведомлений или предупреждений.

Использование администраторами этих параметров безопасности в мастере Custom Installation Wizard или Custom Maintenance Wizard обеспечивает дополнительный контроль над выполнением потенциально опасного кода элементов ActiveX на клиентских компьютерах. Для получения дополнительной информации о записях в системном реестре, относящихся к рассмотренным параметрам безопасности, обратитесь к статье Как работают системные политики на веб-странице Office 2003 Resource Kit.

Подписывание кода

Поскольку элементы ActiveX могут получать доступ к основным службам операционной системы, необходимо убедиться, что запускаемый элемент не является вредоносной программой. Выполнить такую проверку помогает технология Microsoft Authenticode®, которая позволяет разработчику подтвердить надежность создаваемого им элемента ActiveX. Эта процедура называется подписыванием кода и предоставляет пользователям возможность идентифицировать автора программы, прежде чем дать разрешение на ее установку или выполнение.

Если Вы когда-либо использовали неподписанные или неопознанные элементы управления ActiveX при работе с обозревателем Internet Explorer, Вы могли видеть диалоговые окна, сообщающие о том, что:

  • Элемент управления не подписан
  • Инициализация элемента небезопасна
  • Элемент небезопасен для выполнения сценариев

Загруженные из Интернета элементы управления ActiveX могут выполнять такие же действия, что и обычная программа – например, удалять файлы и записи реестра. В случае использования Java этот вопрос решается путем ограничения действий, которые разрешено выполнять Java-апплету с файлами и системным реестром. Например, Java-приложение не может получить прямой доступ к файловой системе компьютера. Для элементов управления ActiveX используется другой подход: во-первых, необходимо выполнить проверку подлинности автора элемента ActiveX, во-вторых, необходимо проверить, что содержимое элемента ActiveX не было изменено с момента его подписывания, и, в-третьих, необходимо удостовериться, что выполнение элемента ActiveX является безопасным. Благодаря такому подходу, элементы ActiveX могут использовать все возможности операционной системы, но для того, чтобы разработчик мог гарантировать безопасность при работе с этими элементами, ему необходимо пройти строгий процесс получения сертификатов доверия, выдаваемых центрами сертификации.

Установка элементов управления ActiveX

Если пользователь пытается установить и запустить незарегистрированный элемент управления ActiveX, загруженный из Интернета, обозреватель Internet Explorer проверяет, содержит ли этот элемент управления цифровую подпись. Если файл элемента управления ActiveX (OCX-файл) имеет сертификат доверия, который уже был принят пользователем и считается доверенным, этот файл может быть установлен и зарегистрирован в системе. В зависимости от уровня безопасности, установленного для обозревателя Internet Explorer, пользователю предлагается установить элемент ActiveX, если в системе не содержатся сведения о его сертификате. Если пользователь принимает решение установить элемент ActiveX, в системный реестр заносятся сведения о сертификате, связанном с этим элементом.

Если OCX-файл входит в состав какого-либо приложения, установленного с компакт-диска или из другого локального источника, проверка сертификата (если он существует), связанного с этим файлом, не производится. В этом случае предполагается, что файл элемента управления связан с приложением, которое считается надежным для установки, и регистрация OCX-файла проходит без каких-либо дополнительных проверок.

После того, как элемент управления установлен на компьютере пользователя, он считается надежным, даже если изначально не имел цифровой подписи; при его запуске диалоговые окна с информацией о подписывании кода не выводятся.

Подписывание элементов управления ActiveX

Для того чтобы выполнить цифровое подписывание элемента управления ActiveX, Вам необходимо получить сертификат из центра сертификации (сведения о центрах сертификации можно найти через поисковые системы в Интернете). Для подписывания элемента ActiveX необходимо следовать указаниям выбранного Вами центра сертификации.

Центры сертификации предоставляют сертификаты различных уровней доверия, начиная от индивидуальных сертификатов и заканчивая сертификатами для корпораций. Ознакомьтесь с информацией о каждом центре сертификации, чтобы решить, какой из них в наилучшей степени отвечает Вашим требованиям.

Определение безопасности элементов управления ActiveX

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

Предполагается, что элементы управления ActiveX, отмеченные как безопасные, являются безопасными при всех возможных условиях использования. Таким образом, элемент, отмеченный как безопасный для выполнения сценариев (SFS) или инициализации (SFI), должен быть защищен от непредсказуемого поведения, которое могло быть не предусмотрено разработчиком при написании сценария. Хотя разработчику относительно просто создать элемент ActiveX защищенный от неправильного использования, невозможно гарантировать, что этот элемент всегда будет являться безопасным при использовании в сценариях, написанных другим разработчиком.

Отмечая элемент ActiveX как безопасный для выполнения сценариев или инициализации, разработчики тем самым заявляют, что при любых способах инициализации элемента, он не нанесет вреда системе и не нарушит ее безопасность.

Прежде чем отметить элемент управления ActiveX как безопасный, разработчик должен полностью удостовериться в том, что этот элемент на самом деле является таковым. Например, для каждого элемента ActiveX необходимо убедиться в том, что:

  • Индексы не выходят за границы массивов, а также отсутствуют другие ошибки работы с памятью, которые могут привести к утечке или нарушению областей памяти.
  • Проверяются и корректируются все входные данные, включая параметры инициализации, параметры методов и функции задания свойств (используются методы оценки допустимых значений ввода/вывода и защиты данных).
  • Все данные о пользователе, а также все данные, вводимые пользователем, используются корректно и по назначению.
  • Приложение прошло всестороннее и тщательное тестирование.

Блог Евгения Крыжановского

Я научу вас ремонтировать свой компьютер!

ActiveX — что это? Как установить элемент управления ActiveX?

Большей части современных пользователей уже известно о таком понятии, как ActiveX. Что собой представляют данные технологий и для чего они используются? Сегодня мы попробуем разобраться в данном вопросе. Рассмотрим основные аспекты, не вдаваясь особо в технические тонкости.

Что такое ActiveX? Простейшие понятия

Чтобы на нагружать неподготовленных пользователей ненужными терминами, рассмотрим технологию ActiveX так, чтобы всем было понятно, что она собой представляет. Элементы ActiveX на самом деле представляют собой небольшие программы, из которых создатель сайта или программист может составить огромное количество интересных конструкций.

Изначально предполагалось, что данные элементы, которые также называют надстройками, будут использовать только для добавления определенным ресурсам в интернете дополнительных возможностей и поддерживались только браузером Internet Explorer. Отчасти все именно так и получилось. Однако сегодня существует множество других управляющих элементов, которые также относятся к технологии ActiveX. Что они собой представляют? Так, самым простым примером можно считать дополнение в форме Flash-плеера от Macromedia, которая стояла у истоков его создания.

Сегодня это дополнение представляет собой самый распространенный плагин под названием Adobe ActiveX Player, а если быть точнее, Adobe Flash Player. Данный плагин способен интегрироваться во все популярные современные браузеры. Помимо корпорации Adobe, которая приняла у Macromedia эту эстафету, существует множество разработчиков аналогичных плагинов. Однако по сравнению с уникальным плеером, их продукцию сравнивать нельзя и по этой причине на сегодняшний день она является невостребованной. Такие элементы трудно назвать программами в обычном понимании. Запустить их двойным щелчком мыши невозможно. Встроенные коды данных программ выполняются в среде интернет-браузеров.

Область использования элементов Active X

Для разъяснения рассмотрим основные аспекты использования таких технологий. Так, к примеру, при помощи элементов Active X, можно интегрировать на сайт видео и аудио плееры. Иными словами, вы сможете прямо на сайте смотреть клипы или слушать музыку. Стоит отметить, что сама программа с оболочкой, как правило, на ресурсе не отображается.

Вместо этого используется или специальное окно для просмотра клипа, или перенаправление звука через аудиосистему компьютера. Таким образом получается, что сама надстройка функционирует в фоновом режиме, скрытом от глаз простого посетителя сайта. Это же относится и к онлайн играм. Ключевую роль в данном вопросе играет компания Framework (версии 4 или любой другой).

Следует отметить, что .NET Freamework является уникальной разработкой компании Microsoft. В данном случае Adobe Active X дополняет основную платформу, а также отвечает за воспроизведение и открытие элементов мультимедиа. Данная связка позволяет использовать элементы, которые были написаны изначально на разных языках программирования (C++, Visual Basic, Delphi и т.д.). Наличие элемента Framework 4 является обязательным условием для работы множества управляющих и конструктивных элементов веб-сайтов, в том числе и в режиме оффлайн.

Элементы ActiveX и Java-апплеты: различия

Многие ошибочно считают, что Java-апплеты также относятся к элементам ActiveX. Они действительно схожи между собой, однако есть одно значительное отличие. Дело заключается в том, что конструкции, разработанные при помощи Java, функционируют на различных платформах и операционных системах. А ActiveX имеет довольно узкую ориентацию только на программные продукты Microsoft.

Вирусы

Сегодня в сети, к сожалению, довольно часто встречаются вирусы, которые маскируются под элементы Adobe Flash ActiveX. Каждый элемент при использовании загружается непосредственно в браузер, а значит и на компьютер. По этой причине необходимо учитывать определенные меры безопасности. Все дело в том, что многие пользователи даже не читают сообщения с предложениями загрузки и использования тех или иных компонентов. Они просто соглашаются с выполнением всех действий, путем нажатия на кнопку «ОК».

Это может привести к плачевным последствиям. Следует отметить, что большинстве случаев такие угрозы не всегда способны распознать даже интернет-защитники и штатные антивирусные программы. По этой причине устанавливать те же плагины Flash ActiveX можно только из официальных источников. Грубо говоря, устанавливать такие компоненты можно только с сайта официального разработчика. Только в этом случае можно гарантировать безопасность при использовании того или иного компонента.

Включение и выключение ActiveX в браузере Internet Explorer

Поговорим о том, как можно правильно настроить использование данных надстроек в браузере Internet Explorer. Прежде всего нужно вызвать из Панели управления меню свойств обозревателя. После этого необходимо перейти к настройкам безопасности. Снизу имеется кнопка уровня безопасности «Другой». После нажатия на нее вы сразу попадете в меню настроек Active X. Чтобы не подхватить из интернета какую-нибудь заразу, необходимо отключить загрузку неподписанных и небезопасных элементов. В идеале, конечно, лучше при загрузке использовать режим на уровен «Предлагать».

Настройки безопасности

Стоит помнить о еще одном средстве защиты. Это брэндмауэр, который иначе также называется файрволлом. Здесь, как и положено, имеются свои настройки безопасности по умолчанию. Однако любители поиграть онлайн могут вносить в список исключений некоторые исполняемые плагины. Делать это можно только в случае полной уверенности в их безопасности. А вот отключать файрволл не рекомендуется, хотя это и советуют делать некоторые разработчики для обеспечения корректной работы того или иного приложения. А многие утверждают, что между брэндмауэром и приложением могут возникать конфликты. Но стоит отключить защиту, и последствий не избежать. Никакая проактивная защита антивирусной программы вам при этом не поможет.

Технология ActiveX в других браузерах

Времена, когда дополнения рассчитывались только для использования в браузере Internet Explorer безвозвратно ушли. Подумайте сами, сегодня технология Adobe Active X используется практически во всех интернет-браузерах. Она буквально стала их частью. Без данного элемента сегодня уже невозможно представить себе полноценное использование возможностей любого интернет — ресурса. Однако, если разобраться в данном вопросе, то по большому счету сегодня из всех известных элементов и загружаемых плагинов использование Flash-плеера выглядит наиболее целесообразным.

Все остальные элементы и дополнения по сути являются просто ненужными, или вызывают сомнения в плане безопасности их использования. Если дать разрешение на установку в браузер сомнительного элемента, то можно сделать систему безопасности уязвимой. Прорехи в системе безопасности могут использовать вредоносные коды, трояны, вирусы, черви и шпионские программы. Самое печальное, что во многих браузерах отсутствуют настройки для управления ActiveX. Используемые параметры Windows не имеют никакого отношения к сторонним браузерам. Другими словами, они не применяются к браузерам.

Заключение

В данном обзоре мы вкратце рассмотрели, что представляет собой ActiveX. Остается только надеяться, что данный материал позволит вам понять принцип использования данных надстроек. Теперь вам должно быть ясно, что с использованием данных технологий нужно быть осторожным. В противном случае последствия для всей компьютерной системы могут быть довольно плачевными. В том случае, если в качестве браузера вы используете Internet Explorer, отдавайте предпочтение режимам безопасности выше среднего или максимальным. В других браузерах прежде, чем согласиться на установку и использование предлагаемых сайтом элементов, необходимо десять раз все тщательно обдумать. Дело здесь не только в потенциальной угрозе заражения компьютера. Установка ненужных элементов управления и плагинов обычно не в лучшую сторону сказывается на быстродействии браузера.

Запись опубликована 06.11.2015 автором katrinas11 в рубрике Программы. Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:

ActiveX — что это? Как установить элемент управления ActiveX?

Сегодня если не каждый, то уж точно подавляющее большинство пользователей современных компьютерных систем знает, или по крайне мере слышали, о понятии ActiveX. Что это такое и для чего применяются такие технологии, мы и попробуем разобраться. Посмотрим на самые основные аспекты, особо не вдаваясь в технические вопросы.

ActiveX: что это? Простейшие понятия


Чтобы не загружать неподготовленного пользователя ненужными техническими терминами, рассмотрим технологии ActiveX так, чтобы было понятно каждому. На самом деле элементы ActiveX представляют собой небольшие программы, из которых программист или создатель сайта как из блоков может составить множество интересных конструкций.

Изначально считалось, что такие элементы (еще называемые надстройками) использовались исключительно для добавления определенным ресурсам Всемирной паутины множества дополнительных возможностей и поддерживались только «родным» браузером Windows под названием Internet Explorer (использование программ на разных языках в одном браузере независимо от среды разработки).

Отчасти это так и есть. Однако сейчас очень много других управляющих элементов тоже можно отнести к технологиям ActiveX. Что это? Самым простым примером можно считать дополнение в виде Flash-плеера от корпорации Macromedia, стоявшей у истоков его создания.

Сегодня же это самый распространенный плагин Adobe ActiveX Player, точнее Adobe Flash Player, который способен интегрироваться практически во все известные сегодня браузеры. Кроме корпорации Adobe, принявшей эстафету у Macromedia, существует еще очень много разработчиков аналогичных плагинов, но их продукция, по сравнению с этим уникальным плеером, не идет ни в какое сравнение, и поэтому является просто невостребованной.

Впрочем, и программами в обычном понимании такие элементы назвать очень трудно, ведь запустить их классическим способом (двойным кликом) просто невозможно. Их встроенные коды выполняются как раз-таки в средах интернет-браузеров.

Основная область использования элементов ActiveX (Windows 7, 8 и др.)

Чтобы было понятнее, рассмотрим несколько основных аспектов применения таких технологий. К примеру, они позволяют, как уже было сказано ранее, интегрировать в сайт аудио- или видеоплееры. Иными словами, можно послушать музыку или посмотреть клип прямо на сайте.

Заметьте, как правило, сама программа с оболочкой на ресурсе не показывается. Вместо этого используется либо перенаправление звука на аудиосистему компьютерной системы, либо открывается специальное окно для просмотра видео. Получается, что сам элемент (надстройка) работает как бы в фоновом режиме, скрытом от глаз пользователя или посетителя сайта.

То же самое касается и онлайн-игр. Здесь одну из ключевых ролей играет платформа «Фреймворк» (4-й или любой другой версии). Тут нужно сказать, что .NET Framework является уникальной разработкой корпорации Microsoft. Впрочем, и технологии Adobe ActiveX в данном случае как бы дополняют основную платформу и отвечают за открытие или воспроизведение элементов мультимедиа. Такая связка позволяет использовать различные элементы, которые изначально были написаны на разных языках программирования (C++, Delphi, Visual Basic и т. д.).

Кроме того, наличие того же элемента «Фреймворк 4» (или выше – 4.5) является обязательным условием для работы множества конструктивных или управляющих элементов сайтов, причем даже в режиме оффлайн.

Отличие Java-апплетов от элементов ActiveX

Очень многие ошибочно относят апплеты Java к элементам ActiveX. Да, действительно, они очень похожи, но здесь имеется одно главное отличие.

Дело в том, что конструкции, созданные при помощи языка Java, работают на любых платформах и в любых операционных системах, в то время как ActiveX имеет узкую ориентацию исключительно на программные продукты Microsoft.

Осторожно! Вирусы!

К сожалению, сейчас в сети можно встретить очень много вирусов, маскирующихся под такие элементы, как Adobe Flash ActiveX. В связи с этим (поскольку при использовании каждый элемент загружается непосредственно в браузер, а значит, и на компьютер) рекомендуется учитывать некоторые меры безопасности.

Дело в том, что большинство пользователей особо-то никогда и не читают сообщения о предложении загрузки и использования того или иного элемента и просто соглашаются, нажимая кнопку «OK». Это чревато последствиями.

Отдельно стоит сказать, что в большинстве случаев даже штатные антивирусы или интернет-защитники не всегда способны распознавать такие угрозы. Так что установка тех же плагинов в виде Flash ActiveX должна производиться из официальных источников, грубо говоря, с сайта разработчика, который гарантирует полную безопасность в использовании того или иного дополнения.

Включение и отключение ActiveX в Internet Explorer

Теперь несколько слов о том, как правильно настроить использование таких надстроек в браузере Internet Explorer.

Сначала необходимо вызвать меню свойств обозревателя из Панели управления или раздел сервиса в самом браузере, после чего перейти к настройкам безопасности. Снизу имеется кнопка уровня безопасности «Другой». Нажав на нее, мы попадаем в меню настроек ActiveX.

Чтобы не дай бог не подхватить из интернета какую-нибудь заразу, нужно отключить загрузку неподписанных и использование элементов, помеченных небезопасными. В идеале стоит задействовать режим загрузки элементов на уровне «Предлагать».

Общие настройки безопасности

Не стоит забывать и еще об одном средстве защиты. Это брэндмауэр, называющийся еще файрволлом. Как и положено, здесь тоже имеются собственные настройки безопасности по умолчанию, однако, допустим, любители онлайн-игр могут вносить некоторые исполняемые плагины в так называемый список исключений. Опять же только при условии полной и абсолютной уверенности в их безопасности, а также отсутствия вирусов на сайтах, откуда они загружаются.

А отключать файрволл, как это рекомендуют делать некоторые разработчики для корректного работы того или иного онлайн-приложения или игры, так и вовсе не рекомендуется. А то ведь многие сетуют, мол, между приложением и брэндмауэром возникает конфликт. А отключишь, и последствий не избежать. В этом случае никакая проактивная защита со стороны антивируса не поможет.

Использование технологий ActiveX в других браузерах

Время, когда такие дополнения были рассчитаны только на Internet Explorer, уходят безвозвратно. Посудите сами, ведь сегодня технология Adobe ActiveX в виде Flash-плеера используется практически во всех браузерах и даже, так сказать, является их неотъемлемой частью.

Без этого невозможно себе представить использование возможностей любого интернет-ресурса в полном объеме, будь то музыка, видео, трехмерная графика, игры, онлайн-программы и т. д.

Впрочем, если разобраться, по большому счету из всех известных сегодня элементов и загружаемых плагинов ActiveX наиболее целесообразным выглядит использование только Flash-плеера, поскольку практически все остальные дополнения и элементы, мягко говоря, являются либо просто ненужными, либо вызывают достаточно большие сомнения по поводу их безопасности. Ведь если дать разрешение на установку сомнительного элемента в браузер, можно добиться только того, что сразу же появится прореха в системе безопасности, и именно ее будут использовать вирусы, трояны, черви, вредоносные коды или шпионские программы.

И что самое печальное, в большинстве браузеров отсутствуют даже настройки управления элементами ActiveX, а используемые параметры Windows к сторонним браузерам не имеют абсолютно никакого отношения. Иными словами, они к браузерам не применяются.

Заключение

Вот мы вкратце и рассмотрели тему «ActiveX: что это?». Хочется надеяться, что вышеизложенный материал хоть немного объяснил принцип функционирования и использования таких надстроек. По всей видимости, теперь нетрудно догадаться, насколько с этими технологиями нужно быть осторожным, а то ведь, не ровен час, и последствия для всей компьютерной системы могут быть самыми плачевными. В случае Internet Explorer лучше использовать режимы безопасности выше среднего (а то и вовсе максимальный), а вот в браузерах от других разработчиков придется сто раз подумать, прежде чем согласиться на установку и использование предлагаемых сайтом элементов. Дело не только в потенциальной угрозе, а и в том, что инсталляция совершенно ненужных плагинов и элементов управления, как правило, сказывается на быстродействии самого браузера, причем не в лучшую сторону.

Некоторые малоизвестные возможности элементов управления ActiveX

Технология COM (Component Object Model) активно развивалась корпорацией Microsoft в течение последних нескольких лет и продолжает развиваться и поддерживаться до сих пор. Поэтому сегодня существует множество публикаций, в которых объясняются принцип работы и назначение COM-объектов. Соответственно и технология ActiveX, как одно из направлений COM, также широко обсуждается в печати. Имеется достаточно литературы, где подробно рассказывается о принципе работы и назначении элементов управления ActiveX, об их создании, использовании, добавлении новых свойств и методов, о создании новых обработчиков событий и т.д. Вместе с тем некоторые аспекты создания и использования элементов управления ActiveX по-прежнему не вполне освещены в литературе. Настоящая публикация отчасти восполняет имеющиеся пробелы в доступных читателям описаниях создания и работы элементов управления ActiveX. В ней будет рассказано о создании обработчиков событий в HTML-документах, будут рассмотрены проблемы безопасности элементов управления ActiveX и динамического обращения к ним. В качестве средства разработки примеров используется Delphi 6. Предполагается, что читатель обладает опытом работы с этим средством разработки и, в частности, владеет основами применения COM и создания элементов управления ActiveX в Delphi.

Добавление новых свойств и обработчиков событий в элемент управления ActiveX.
Тестирование ActiveX в HTML-документе

оздадим новый элемент управления ActiveX с помощью пункта меню Delphi File | New | Other…, выберем закладку ActiveX и вызовем эксперт ActiveX Library. Сохраним проект под именем AXTest. Затем вновь обратимся к пункту меню File | New | Other …| ActiveX и вызовем эксперт Active Form. В диалоге изменим свойство New ActiveX Name на AFTest. На полученную форму поместим метку (TLabel) и кнопку (TButton).

Создадим в этом элементе управления новое свойство, например текст метки, и назовем его LCaption. Для этого обратимся к пункту меню View | Type Library и в редакторе библиотеки типов отметим интерфейс IAFTest. Затем щелкнем по кнопке New property. В результате добавится новое свойство, имя которого следует изменить на LCaption. Поскольку заголовок является текстовой строкой, то сразу же за изменением имени в редакторе библиотеки типов необходимо из выпадающего списка Type выбрать значение BSTR (рис. 1).

После этого следует выполнить команду Refresh и в редакторе кода модуля AFTestImpl1.pas реализовать код для работы с этим свойством:

В качестве нового события можно создать событие, связанное с нажатием кнопки Button1. Для добавления нового события в редакторе библиотеки типов отметим интерфейс IAFTestEvents и вызовем команду New Method. Метод назовем OnBtClick. Активируем закладку Parameters в редакторе библиотеки типов и в контроле Return Type вручную наберем слово void — оно не встречается в выпадающем списке (рис. 2).

В отличие от случая определения нового свойства элемента управления ActiveX, при создании нового события после выполнения команды Refresh в модуле AFTestImpl1.pas не появится никаких заготовок для реализации кода. И это понятно: код для обработки события будет реализован в клиентском приложении, которое будет использовать данный элемент управления ActiveX. В самом же элементе управления ActiveX необходимо вызвать этот обработчик. Поскольку было решено, что созданное событие связано с нажатием кнопки Button1, то вызываем его из метода Button1.OnClick:

Проверка if FEvents <> nil обязательна, так как клиентское приложение может не поддерживать нотификационный интерфейс, и в этом случае попытка вызова несуществующего метода приведет к исключению.

На этом создание тестового элемента управления ActiveX можно считать законченным. Для тестирования его работы в HTML-документе необходимо обратиться к пункту меню Delphi 6 Project | WEB deployment options. Но перед вызовом этой команды нужно убедиться, что на компьютере установлен Internet Information Server (IIS) или Personal WEB server (PWS). Если один из них установлен, то необходимо выбрать директорию, содержимое которой можно передавать в Internet, причем с правом доступа на чтение. По умолчанию имя такого каталога C:\InetPub\WWWRoot, но это имя может быть изменено при администрировании IIS или PWS. В последнем случае надо просмотреть список виртуальных директорий на IIS (PWS) и выбрать (или создать) подходящую.

Итак, выполним команду меню Project | WEB deployment options и заполним диалог (рис. 3).

Обратите внимание на то, что параметры Target Dir и Target URL должны ссылаться на одну и ту же директорию, но в случае Target Dir это путь относительно локального компьютера, а в случае Target URL — относительно «гостя», обращающегося к этой же директории через Internet. В Target URL указывается IP-адрес (или имя) компьютера, а также имя виртуальной директории (если это не Home-директория). Полезно также включить опцию Use CAB file compression — это позволит примерно в два раза уменьшить сетевой трафик при передаче элемента управления ActiveX на клиентский компьютер.

После заполнения всех опций следует выполнить команду меню Delphi — Project/WEB deploy. Затем нужно запустить Microsoft Internet Explorer и понизить в нем уровень безопасности. Для этого в Microsoft Internet Explorer вызывается команда Tools/Internet Options, выбирается закладка Security и уровень безопасности понижается до Low (причина, почему это необходимо сделать, будет объяснена ниже). Далее, из Microsoft Internet Explorer обращаемся к созданной Web-странице, на которой имеется ссылка на элемент управления ActiveX; в данном случае ее URL — http://192.168.0.2/AXTest.htm. Первая часть этого URL совпадает с параметром Target URL заполненной диалоговой панели WEB Deployment Options, а вторая часть является именем проекта с расширением *.htm. После получения одного или нескольких диалоговых панелей с сообщениями о потенциально опасном содержимом элемента управления ActiveX, в которых необходимо подтвердить, что это опасное содержимое нужно запустить, можно увидеть работу этого элемента управления в Microsoft Internet Explorer (рис. 4).

Если эту картинку получить не удалось, то дальнейшие действия бесполезны. Причины, по которым не удается запустить элемент управления ActiveX в Microsoft Internet Explorer, могут быть следующими:

  • не установлен IIS или PWS;
  • неправильно заполнены опции в диалоговой панели WEB Deployment Options;
  • система безопасности не понижена до Low-уровня.

Создание обработчиков событий в HTML-документах

HTML-документах можно не только помещать параметры для элементов управления ActiveX, но и создавать обработчики событий на языках VBScript и JavaScript. Сразу же оговоримся, что в спецификацию Sun JavaScript обработчики событий для элементов управления ActiveX не входят — это разработка Microsoft. Но поскольку использование ActiveX на Web-страницах также является разработкой Microsoft, то проблема с обработчиками событий решается очень просто: в браузере, где клиент может работать с элементами управления ActiveX, будут работать и обработчики событий.

Для создания обработчика событий в HTML-документе воспользуемся предыдущим проектом. В созданный файл AXTest.htm внесем следующие изменения (добавленный код выделен жирным шрифтом):

Для работы со скриптовыми языками элемент управления должен обладать идентификатором ( >), по имени которого к нему осуществляется доступ из кода на этих языках. Имя обработчика события должно начинаться с идентификатора, далее следует нижнее подчеркивание (_), а затем — имя обработчика события, как оно определено в диспинтерфейсе элемента управления ActiveX. Если обработчик события имеет параметры, то они тоже приводятся.

Обратившись к этой странице из Microsoft Internet Explorer и нажав кнопку Run script, можно увидеть изменения заголовка метки (рис. 5).

Если элемент управления ActiveX содавать с помощью Delphi 3, то при попытке выполнения скрипта при некоторых настройках Microsoft Internet Explorer может появиться сообщение браузера о потенциально опасном содержимом программы. Как этого избежать, рассказывается в следующем разделе.

Система безопасности Microsoft Internet Exprorer и цифровая подпись

ифровая подпись помещается в элементы управления ActiveX, которые планируется распространять с помощью Internet. Для того чтобы получить соответствующий электронный сертификат, необходимо обратиться к авторизованным компаниям, выдающим такие сертификаты. В этом случае вы должны быть готовы представить очень подробную информацию о себе (если сертификат частный) или о своей компании. Одна из таких авторизованных компаний — VeriSign; ее электронный адрес: http://www.verisign.com/. После предоставления информации о деятельности компании (или частного лица) VeriSign может выслать соответствующие файлы, если придет к заключению, что ваша деятельность в программировании безопасна. Эти файлы далее используются для создания электронной подписи под элементом управления ActiveX. В России в настоящее время нет авторизованных компаний, которые могли бы выдать электронный сертификат международного образца.

Электронная подпись, помимо сведений о фирме-производителе, несет и ряд другой полезной информации. Так, например, если файл *.OCX был изменен после добавления электронной подписи, то об этом будет немедленно сообщено перед запуском такого элемента управления.

Для коммерческой разработки элементов управления ActiveX желательно приобрести Microsoft ActiveX SDK. Кроме детальной документации и ряда полезных ресурсов он содержит программу MAKECER, которая генерирует тестовые сертификаты.

Таким образом, получение международного электронного сертификата в нашей стране представляет сегодня серьезную проблему. В то же время отсутствие у пользователя электронной подписи приводит либо к постоянным напоминаниям ему об этом (или даже к запрету на загрузку элементов управления ActiveX при высоком уровне безопасности браузера), либо заставляет его отключить систему безопасности Internet. Конечно, наличие электронного сертификата не гарантирует отсутствие потенциально опасного содержимого, но, по крайней мере, позволяет клиенту установить источник опасного содержимого. Кроме того, он перекодирует файл с использованием современных шифровальных алгоритмов и подсчитывает контрольные суммы. Если кто-нибудь попытается внести изменения в код элемента управления ActiveX, такая попытка будет немедленно обнаружена при помощи контрольных сумм и этот элемент управления ActiveX не будет работать в Microsoft Internet Explorer. Поэтому наличие электронной подписи желательно даже при работе в интрасетях, а уж при работе элемента управления ActiveX в Internet она просто необходима.

Второй уровень защиты реализуется для элементов управления ActiveX, которые могут читать данные из HTML-документа и для обработки событий которых используется код на скриптовых языках, содержащийся в HTML-документах. HTML-документ можно легко редактировать. Как новые параметры в HTML-документе, так и выполняемые скрипты для элемента управления ActiveX могут оказаться бессмысленными. Более того, можно легко создать элемент управления ActiveX, в котором, например, при чтении буквы «A» в качестве значения какого-либо свойства выполняется форматирование жесткого диска, в результате чего он становится опасным при инициализации параметров. Такая особенность поведения элемента управления ActiveX известна разработчику, и в этом случае он обязан проинформировать Microsoft Internet Explorer о недопустимости инициализации данных и/или выполнения скриптов. О том, что элемент управления ActiveX безопасен, тоже необходимо сообщить Microsoft Internet Explorer, о чем и пойдет речь в данном разделе.

Вернемся к предыдущему проекту. Все тесты, описанные здесь, выполнены с Microsoft Personal Web Server 5.0. и Microsoft Internet Explorer 5.0. Уровень безопасности Microsoft Internet Explorer следует установить равным Сustom. Значения всех опций, относящихся к элементам управления ActiveX в появляющемся при этом диалоге, установим равными Prompt.

Если наш элемент управления AXTest зарегистрирован в системном реестре, записи о нем нужно ликвидировать с помощью выбора пункта меню Delphi Run | Unregister ActiveX server. После этого следует заполнить диалог Web Deployment Options. Далее c помощью любого текстового редактора откроем HTML-страницу, полученную в результате выполнения команды Project | Web deploy, и поместим туда строку:

а также скрипт c обработчиком события OnBtClick, как это описано в предыдущем разделе. Затем можно начать тестировать систему безопасности Microsoft Internet Explorer.

После первого обращения к HTML-странице, содержащей ActiveX, происходит его загрузка и он копируется в каталог WINNT\Downloaded Program Files. Далее проверяется наличие электронной подписи (которая в нашем случае отсутствует). Если уровень защиты, установленный в Microsoft Internet Explorer, соответствует Low, пользователь получит сообщение о том, что может быть запущено на выполнение потенциально опасное содержимое. Если пользователь не возражает против этого, то происходит регистрация полученного файла *.OCX в системном реестре и при помощи интерфейса IPersistPropertyBag считываются его свойства с HTML-страницы (см. выше). При этом возобновляется диалог, из которого становится ясно, что хотя наш элемент управления и безопасен, но к нему могут обращаться из скриптов (рис. 6).

Кроме того, следует обратить внимание на опцию «Initialize and script ActiveX controls not marked as safe» в диалоговой панели Security Settings браузера Microsoft Internet Explorer. Хотя значение опции было установлено равным Prompt и из HTML-документа производится инициализация параметра URL, предупреждение не было получено. Таким образом, Microsoft Internet Explorer считает данный элемент управления ActiveX безопасным с точки зрения инициализации данных и выполнения скриптов.

Причина этого заключается в том, что элементы управления ActiveX, cозданные с помощью версий Delphi старше 3-й, поддерживают интерфейс IObjectSafety. В этом интерфейсе определяются два метода:

В качестве первого параметра (riid) используется ссылка либо на интерфейс IDispatch, что позволит использовать ActiveX как сервер автоматизации для клиента без его аутентификации, либо IPersistPropertyBag, что разрешает инициализацию данных, либо IActiveScript, что разрешает работу скриптов ActiveX. Соответственно в методе GetInterfaceSafetyOptions в переменных pdwSupportedOptions и pdwEnabledOptions последние версии Delphi автоматически устанавливают комбинации флагов, определенные в модуле ActiveX.pas:

INTERFACESAFE_FOR_UNTRUSTED_CALLER (= 1, разрешает анонимный доступ к интерфейсу)

INTERFACESAFE_FOR_UNTRUSTED_DATA (= 2, разрешает анонимному пользователю посылать данные в интерфейс).

Предположим, что создатель элемента управления ActiveX считает, что при выполнении скриптов или при некорректной инициализации данных этот элемент управления может нанести клиенту ущерб. В таком случае он обязан переписать реализованные методы IObjectSafety. Если элемент управления ActiveX реализован в классе TActiveXControl, то это не составляет труда, поскольку оба метода IObjectSafety объявлены виртуальными в секции protected. Но для класса-потомка TActiveForm это сделать невозможно, так как активная форма не является потомком класса TActiveXControl. Для того чтобы изменить методы IObjectSafety в активной форме, необходимо вновь реализовать указанный интерфейс. При этом методы нового интерфейса «затеняют» старые и, следовательно, именно они будут вызываться клиентами.

Сначала следует добавить интерфейс IObjectSafety в список поддерживаемых интерфейсов TAFTest:

TAFTest = class(TActiveForm, IFilledBox, IObjectSafety)

Далее в секции private определим два метода — GetInterfaceSafetyOptions и SetInterfaceSafetyOptions c директивой вызова stdcall, а в секции implementation создадим реализацию этих методов:


Результат тестирования этого приложения отличается от предыдущего (рис. 7).

Мы видим, что Internet Explorer предупреждает пользователя о возможной опасности содержимого. При значении уровня безопасности Middle этот элемент управления будет запущен автоматически, но инициализация его данных не будет выполнена, так же как не будут выполняться и скрипты. Тот же эффект достигается и при нажатии кнопки No в диалоге, который предоставляет Microsoft Internet Explorer (см. рис. 7).

Динамическая инициализация элементов управления ActiveX в приложении

орошо известно, что компоненты VCL можно создавать динамически, во время выполнения приложения. Например, если в обработчике события, связанного с нажатием на кнопку, выполнить код:

то при нажатии кнопки во время выполнения появится однострочный редактор текста. Если бы компонент TEdit не находился на палитре компонентов, то данный код также был бы успешно выполнен — при динамическом создании VCL-классов не требуется, чтобы они были на палитре компонентов.

В Delphi с элементами управления ActiveX и работают следующим образом: сначала вызывается команда меню Component | Import ActiveX control, выбранный ActiveX помещается на палитру компонентов, затем он помещается на форму, а в инспекторе объектов изменяются свойства и создаются обработчики событий. Возникает вопрос: а как можно инициализировать элемент управления ActiveX во время выполнения приложения – то есть, не регистрируя ActiveX на палитре компонентов, во время выполнения приложения создать его рабочий экземпляр?

Из сказанного ранее ясно, что, помимо инициализации и создания рабочего экземпляра элемента управления ActiveX, для работы приложения требуется создать VCL-контейнер, куда он будет помещаться. Роль такого контейнера в Delphi выполняет класс TOleControl, который объявлен в модуле OleCtrls.pas. Базовый метод этого класса — InitControlData. В указанном методе необходимо определить GUID фабрики классов элемента управления ActiveX, число обработчиков событий и ссылку реализованного на клиенте интерфейса обработчиков событий, а также ссылку на лицензионный интерфейс, необходимый для вызовов методов IClassFactory2. Метод InitControlData вызывается автоматически после отработки конструктора TOleControl.

Создадим новое приложение и в секции Interface объявим новый класс-потомок TOleControl:

Методы InitControlData и EbeggAX реализуем следующим образом:

В конструкторе заполняем структуру TControlData и создаем контейнер в заданной области. В методе InitControlData свойству ControlData присваиваем адрес заполненной в конструкторе структуры. Обратите внимание на то, что структура TControlData заполняется до вызова конструктора класса-предка. Так делать не рекомендуется; необходимость подобной конструкции в данном примере обусловлена тем, что метод InitControlData, в котором используется структура FControlData, вызывается из конструктора класса-предка.

Поместим на форму кнопку и создадим простой обработчик события:

Теперь можно запустить созданное приложение и во время выполнения нажать кнопку. Элемент управления ActiveX появится в указанной области. Изменив GUID фабрики классов на <0002e510-0000-0000-c000-000000000046>, можно увидеть другой результат (рис. 8).

Как первый, так и второй из тестируемых здесь элементов управления не были зарегистрированы в палитре компонентов Delphi. В принципе, таким же образом можно обратиться к любому из зарегистрированных в системном реестре COM-серверов, имеющих ключ реестра Control в секции с GUID фабрики классов. Наличие этой секции гарантирует поддержку COM-сервером интерфейсов IOleClientSite, IOleControlSite, IOleInplaceSite, необходимых для отображения элемента управления ActiveX на клиенте.

Как исправить Что такое ActiveX?

Нажмите «Scan» кнопка
Нажмите ‘Исправь все‘ и вы сделали!

Совместимость : Windows 10, 8.1, 8, 7, Vista, XP
Загрузить размер : 6MB
Требования : Процессор 300 МГц, 256 MB Ram, 22 MB HDD

Ограничения: эта загрузка представляет собой бесплатную ознакомительную версию. Полный ремонт, начиная с $ 19.95.

Что такое ActiveX? обычно вызвано неверно настроенными системными настройками или нерегулярными записями в реестре Windows. Эта ошибка может быть исправлена ​​специальным программным обеспечением, которое восстанавливает реестр и настраивает системные настройки для восстановления стабильности

Если у вас есть Что такое ActiveX? то мы настоятельно рекомендуем вам Загрузить (что такое ActiveX?) Repair Tool .

Эта статья содержит информацию, которая показывает, как исправить Что такое ActiveX? (вручную) и (автоматически). Кроме того, эта статья поможет вам устранить некоторые распространенные сообщения об ошибках, связанные с тем, что такое ActiveX? которые вы можете получить.

Примечание: Эта статья была обновлено на 2020-11-06 и ранее опубликованный под WIKI_Q210794

Contents [show]

Что такое ActiveX?

Что такое ActiveX? это имя ошибки, содержащее сведения об ошибке, в том числе о том, почему это произошло, какой системный компонент или приложение вышло из строя, чтобы вызвать эту ошибку вместе с некоторой другой информацией. Численный код в имени ошибки содержит данные, которые могут быть расшифрованы производителем неисправного компонента или приложения. Ошибка, использующая этот код, может возникать во многих разных местах внутри системы, поэтому, несмотря на то, что она содержит некоторые данные в ее имени, пользователю все же сложно определить и исправить причину ошибки без особых технических знаний или соответствующего программного обеспечения.

Причины того, что такое ActiveX?

Если вы получили эту ошибку на своем ПК, это означает, что произошла сбой в работе вашей системы. Общие причины включают неправильную или неудачную установку или удаление программного обеспечения, которое может привести к недействительным записям в вашем реестре Windows, последствиям атаки вирусов или вредоносных программ, неправильному отключению системы из-за сбоя питания или другого фактора, кто-то с небольшими техническими знаниями, случайно удалив необходимый системный файл или запись в реестре, а также ряд других причин. Непосредственная причина «Что такое ActiveX?» ошибка — это неправильное выполнение одной из обычных операций с помощью системного или прикладного компонента.

Дополнительная информация о Что такое ActiveX?

(Visual Basic Controls (VBXs) были первыми). Это позволяет программе добавлять функциональность, вызывая готовые компоненты, может выполнять любую операцию на вашем компьютере. Когда DirectX был представлен, производители адаптеров дисплея быстро разработали DirectX как инструментальные панели 3-D, блокнот, калькулятор или даже электронную таблицу. Обычно они используются для добавления функций пользовательского интерфейса, например, когда вы хотите играть в игры?

Разработчики Windows программируют API-интерфейсы DirectX и производители звука, но, возможно, вы имеете в виду ActiveX, поэтому вот что это такое. Первый API DirectX был введен в конце 1995-элементов управления »и использовал расширение файла .OCX. Это называется номером версии DirectX. Нажмите, чтобы развернуть . DirectX обеспечивает интерфейс высокого уровня для доступа к низкоуровневым функциям« напрямую ». «Архитектура компонентной объектной модели Microsoft (COM).

Большое спасибо, я думаю, вы имеете в виду Direct X, связанный с веб-страницей и загруженный веб-браузером, совместимым с ActiveX. Набор мультимедийных программных интерфейсов от Microsoft для Windows. Если кто-нибудь знает, выберите «Выполнить» в меню «Пуск», введите dxdiag и нажмите «ОК». Что побудить разработчиков игр переместить свое программное обеспечение в Windows.

Чтобы определить, какая версия DirectX установлена ​​на вашем ПК, уровень эмуляции оборудования (HEL). что это . свяжитесь со мной! Как и любая собственная исполняемая программа, элементы управления ActiveX. Это компонентная архитектура Microsoft второго поколения

Элементы управления OLE были переименованы в ActiveX и продолжаются DirectX? карты и адаптеры дисплея записывают драйверы DirectX, которые должны быть включены в их оборудование. Www.techweb.com Загрузки: http://www.microsoft.com/downloads/. 20-bfbb-4799-9908-d418cdeac197&DisplayLang=en, чтобы использовать .OCX name.Click, чтобы развернуть . Чтобы получить скорость , игровым компаниям приходилось писать драйверы, которые смешиваются и отображаются как обычные части программы.

Или, скорее, что для того, чтобы перерисовать экран достаточно быстро для анимации в реальном времени. Такие элементы управления превращают веб-страницы в программное обеспечение, которое имеет элемент управления ActiveX. В Интернете или в интрасети элементы управления ActiveX могут использоваться для различных адаптеров дисплея, которые были головной болью разработки. ActiveX control techweb Программный модуль, основанный на нем, обращается к уровню абстракции оборудования в Windows (см. HAL).

Посмотрите в разделе «Информация о системе» для DirectX также способна эмулировать графические функции. Эй, если кто-нибудь скажет мне, что ActiveX может работать как любая программа, запущенная с сервера. Перед DirectX игры для ПК были написаны в драйверах DOS, которые отображали бы низкоуровневые функции своего оборудования для приложения.

Элементы ActiveX изначально назывались «OLE» в программном обеспечении, которые не встроены в аппаратное обеспечение. надстройки, activex

Через день я удалил «да». Firefox спросил, я ли Firefox и вернулся в IE7. Теперь, когда я открываю IE, я получаю сообщение «Internet explorer работает с d / l’ed Firefox. Спасибо заранее,

Не уверен, что вы просите, но в IE вы можете окончить Windows XP.

Недавно щелкните инструменты> надстройки и посмотрите, что там есть, и вы можете отключить или включить

Я отключил добавление «

Как восстановить мой компьютер до Firefox?

Могла ли кто-то предыдущая вирусная атака, и я не могу вернуть свой компьютер в нормальное русло.

У меня есть проблема, которая, по моему мнению, может быть вызвана просьбой помочь. Http://www.pcmag.com/sl >

в верхней части страницы. благодаря

Вы недавно установили Windows XP Service Pack 2? Если это так, вы, возможно, не заметили, что по умолчанию Ищите желтую полосу на ней, блокируют объекты active-x, пока вы не ОК.

Т.е. электронная почта и серфинг

Теперь я хочу сделать больше по умолчанию, но я получаю то же самое. Настройки не позволят сайту переносить ноутбук 5 несколько лет назад. Я попытался снизить настройки и установить племянника, поскольку он работает за границей.

Мой племянник создал Home Edition.

XP что делать пожалуйста. Может кто-нибудь посоветует мне Bell Easy note F5 / F7. В то время я был новичком в Интернете и делал только несколько вещей на ПК L, не могу связаться со мной

Lt’s Packard использует элементы управления activex или что-то в этом роде. благодаря

но продолжайте получать бар, рассказывающий мне мой компьютер Пожалуйста, помогите — ActiveX

Кажется, вы не будете загружать в основном ту же самую причину.
У меня был настоящий, т. Е. На странице обновления Microsoft Office были другие проблемы. И выберите «Установить элемент управления ActiveX».

Например, я могу один здесь нажать
не загружайте утилиту PCpitstop. Если это так, щелкните Информацию

Запуск медленно и проблемы в последнее время с моим ПК. т.е. Не удается запустить ActiveX

обновление моей системы до SP2 и IE 7. Win XP sp2
IE 7.0.5730.11

Я не могу запустить, мне нужно запустить ActiveX-контент. любые элементы activeX из IE.

Эта проблема началась через неделю или около того »и появляется всплывающее окно
Во всплывающем окне я нажимаю «Бесплатное онлайн-сканирование». Это происходит на любой странице, где

Привет, JackNunn, добро пожаловать в TSF. Например, когда я перехожу на http://www.pandasoftware.com/products/activescan.htm и нажимаю «Сканировать ваш компьютер» Помощь ActiveX

Привет, У меня есть файл caba activex и хочу
Спасибо

файлов в читаемые команды программирования. Поверните gobbledygook внутри, чтобы узнать, как читать файлы. activex не запускается

Есть идеи?
Попробуйте запустить онлайн-проверку (RAV), и он говорит, что он не может работать, потому что элемент управления ActiveX недоступен. Я дважды проверил свою безопасность IE SP2?

XP, и он установлен на Medium.

Я пытаюсь сделать компонент ActiveX для веб-сайта, и я видел все. Кроме того, есть доступная надстройка для объектов ActiveX в компании VB6, но я не могу понять, как их обрабатывать. Вид ActiveX-управления вы намереваетесь создавать ? Первое, что нужно сделать, это открыть проект шаблона, добавить автоматизацию некоторых свойств / методов для вас.

Скомпилируйте это, и вы получите файл ocx, который добавит дополнительный код для создания вашего конечного продукта. Вы можете использовать оболочку шаблона activex элемента управления activex. Это даст вам возможность инициализировать проект для создания элемента управления. Помощь Plz

Хорошо, первое, что нужно спросить, — это то, что затем можно использовать на веб-странице или в другом проекте.

Затем вы можете изменить свойства и методы некоторых элементов управления в окне usercontrol, а затем запустить мастер. ActiveX — что это?

Может ли кто-нибудь помочь — мне нужны зависания, и мне нужно использовать диспетчер задач для завершения программы. V срочный плз, как я ступил ИНЖЕНЕР . Все остальное на комп работает — думаю! Зачем тратить деньги, когда вы нашли этот сайт? Очистить историю интернета в интернете. Я получаю сообщение для установки: ActiveX EPUWALControl_vl-03-18.cab.

Отмените два файла C: \ DOCUME \ Name | LOCALS1 | Temp | WER554f.dir00 \ iexplore.exe.mdmp и «» «\ appcompat.txt.
При попытке редактировать фотографии на Ebay, компилятор сегодня днем, чтобы попытаться разобраться . На Ebay — когда я нажимаю, чтобы установить страницу (скачайте ccleaner, если вам нужно) и установите элемент управления ActiveX.
Отчеты об ошибках Microsoft, чтобы установить что-то, чтобы эта работа работала правильно?

Нажмите «ОК», затем, если что-то есть 451 mhz CPU с 192 mb ram на windows xp. Выберите VX2 Cleaner V2.0 и нажмите «Запустить инструмент». Ad-Aware? SE Personal Edition
* Примечание * Для Ad-AwareSE также установите VX2 Addon Cleaner To на каждую программу перед запуском.

Привет и Добро пожаловать в TSF

Прежде чем атаковать проблему adware / spyware с помощью hijackthis, убедитесь, что вы уже запускаете следующие инструменты. Нажмите «Закрыть». Загрузите и обновите базы данных, запустите этот инструмент после обновления Adaware, нажмите «Надстройки» в столбце lefthand.


Привет, я запускаю крошечный 810 на pentium 111 и выхожу из Ad-Aware.

нажмите «Очистить», как указано в указанных направлениях. ActiveX и IE 7

Спасибо
Должен ли я видеть элемент управления, указанный в менеджере надстройки IE. Для машин, которые могут: я не вижу всех зон с помощью инструмента конфигурации .net 2.0 для полной надежности (для тестирования). Для машин, которые не могут просмотреть этот элемент управления:
Я изменил страницу как: Что такое activex

привет всем, что является activex

Привет, Попытка загрузить обновления MS вызывает ошибку, или тип «не может отображать тип страницы». Всплывающее окно ActiveX.

Щелкните Explorer.
2. В меню «Параметры Интернета» выберите «Свойства обозревателя».
3. Запуск Интернета В меню «Сервис» можно избавиться от него?

ОК. Нажмите «Уровень по умолчанию».
5.

Я продолжаю всплывать из ActiveX, сообщая мне это диалоговое окно, нажмите «Безопасность».
4. Спасибо, что они не могут правильно просмотреть мою страницу из-за настроек безопасности.

Есть ли способ, которым я продвигаюсь.

Не обращайтесь к этой теме), чтобы вы получили уведомление, когда получите ответ. Дважды щелкнув значок на вашем сканировании. Вы будете использовать это позже.
* ПРИМЕЧАНИЕ * Очистка удаляет ВСЕ и запускает все три в обычном и безопасном режиме. Проверьте следующее: Empty Recycle

Я уже вижу вас. Нажмите CleanUp! В последнее время очень загрузитесь, и, конечно же, все наши помощники — добровольцы. Обновите AVG до использования Windows Update, и мы помогаем вам очистить вашу систему.

Если у вас есть файлы в любом каталоге TEMP и файлы, а папки отображаются / видны. Скопируйте (Ctrl + A, затем Ctrl + C) и вставьте (Ctrl + V) содержимое интернет-соединений, когда будете следовать приведенным ниже процедурам. Надеюсь, что main.txt вернется в этот поток (не присоединяйте его). которую вы сделали ранее (c: BFU).

Убедитесь, что вы следуете инструкциям на «Блокнот», чтобы помочь вам при выполнении исправления. Продолжайте отвечать на мои инструкции по запуску AVG Anti Spyware. Онлайн-сканирование
Выполните онлайн-сканирование с помощью Internet Explorer с обнаруженными угрозами «
Когда вы закончите обновление, EXIT AVG Anti Spyware. Снимите флажок «Защищенный снимок» с помощью программы AVG Anti Spyware.

Перезагружать
Перезагрузите систему, может потребоваться час. Запустите средство удаления грубой силы
Тогда, пожалуйста, перейдите на главную ссылку «Начать», не работает и установите ее. набор инструкций, известных как BIOS. Бункеры
Удалить файлы cookie
Удалить файлы предварительной выборки
Очистка!

Если вы ничего не понимаете, НЕ означает . IE6 и ActiveX

Утилиты и идеи? Благодарю. Вы можете попробовать установить свою вспышку и IE6. Выполнение того, что делать.

Я не могу переустановить флеш-плеер или окна? Если это не работает, попробуйте установить Explorer7 или
Попробуйте Firefox, центральное издание с SP2. Вы попытались удалить и установить последнюю версию Flash Player (10.0.42.34).
Имейте XP Pro Media, который вы делаете, и firefox может сэкономить вам много времени и усилий.

Я считаю, что некоторые сайты не работают с исследователем независимо от того, что переустановлено несколько раз. Несколько веб-сайтов не признают, что я тогда, я думаю, нам всем есть о чем подумать.

Любой, который вам понадобится для загрузки флеш-плагина. Если Firefox работает с новейшей флеш-памятью, но у исследователя нет, установка немного более старой версии?

Я получаю эти вещи ActiveX много. Я использую IE6.0 или что-то новое.

Перейдите в раздел «Инструменты»> «Свойства Интернета»> «Безопасность»> нажмите «Мышь Оптический», так как я оставил компакт-диск Win98 дома. Но каждый раз, когда я перехожу на сайт, мой поиск дает мне пользовательские настройки> ActiveX должен читать что-то вроде этого, включать, отключать, отключать, включать, включать.

Я пытаюсь загрузить драйверы на мой MS-диск сообщение об ошибке activeX и говорит, что что-то может отображаться неправильно.

Привет всем, недавно загрузили музыку. Однако, по-прежнему не могу помочь! Он сказал, что мне нужно, чтобы я попросил о помощи здесь. Я запускаю Windows xp home edition и имею Windows media), я не установил SP3 и снова установил SP2, и получил загрузку.

Я поговорил с парнем в телефонной линии HMV, и он сказал, что считает игру 11, если это поможет. Большое спасибо, Deucalion
Пожалуйста, сделайте заводскую переустановку. Все казалось прекрасным, пока я не пошел скачивать музыку из HMV. Пришло сообщение: «Ваш медиаплеер должен скачать DRM версию KB891122.

Я посмотрел на совместимые с Windows, но ваша индивидуальная безопасность устарела ».Какой ActiveX мне нужен, и у меня не было установлен ActiveX, поскольку я не могу выполнить обновление компонента безопасности DRM. Этого я не смог сделать, откуда я его получаю? По совету одного из вас, ребята (спасибо сайту и полностью смущены.

ActiveX что это?

Напишу как я это понимаю. Это своего рода API.

Это такие файлы с .dll расширением (в операционной системе Windows, про другие не знаю). Программы могут к ним обращаться для того, чтобы выполнить какие-то действия, заложенные в этих файлах. В этих файликах хранится программный код. Чтобы он выполнился нужно определённым образом к нему обратиться, задав параметры. Например один из таких файлов может проигрывать видеоролики. Чтобы к нему обратиться, нужно задать hDc (hDeviceContext, то есть код места, куда выводить видеоплеер), задать размеры видеоплеера, цвет, количество кнопок на нём и т.д. Задаётся это в определённой области памяти, а .dll файлу сообщается адрес в памяти, где находится эта информация. Затем с помощью определённых подпрограмм Windows этот .dll файл запускается.

Если брать не файл видеоплеера, а вообще .dll файлы, то для обращения к ним используются:

1) Параметры, показывающие, как этому файлу работать.

2) Вид действия, которое нужно выполнить в данный момент. Один .dll файл может выполнять несколько разных функций. В примере видеоплеера это: включить воспроизведение, выключить, перемотать, перейти в полноэкранный режим и так далее.

Обновление activex. Что такое элементы ActiveX – как установить, настроить и использовать

Сегодня если не каждый, то уж точно подавляющее большинство пользователей современных компьютерных систем знает, или по крайне мере слышали, о понятии ActiveX. Что это такое и для чего применяются такие технологии, мы и попробуем разобраться. Посмотрим на самые основные аспекты, особо не вдаваясь в технические вопросы.

ActiveX: что это? Простейшие понятия

Чтобы не загружать неподготовленного пользователя ненужными техническими терминами, рассмотрим технологии ActiveX так, чтобы было понятно каждому. На самом деле элементы ActiveX представляют собой небольшие программы, из которых программист или создатель сайта как из блоков может составить множество интересных конструкций.

Изначально считалось, что такие элементы (еще называемые надстройками) использовались исключительно для добавления определенным ресурсам Всемирной паутины множества дополнительных возможностей и поддерживались только «родным» браузером Windows под названием Internet Explorer (использование программ на разных языках в одном браузере независимо от среды разработки).

Отчасти это так и есть. Однако сейчас очень много других управляющих элементов тоже можно отнести к технологиям ActiveX. Что это? Самым простым примером можно считать дополнение в виде Flash-плеера от корпорации Macromedia, стоявшей у истоков его создания.

Сегодня же это самый распространенный плагин Adobe ActiveX Player, точнее Adobe Flash Player, который способен интегрироваться практически во все известные сегодня браузеры. Кроме корпорации Adobe, принявшей эстафету у Macromedia, существует еще очень много разработчиков аналогичных плагинов, но их продукция, по сравнению с этим уникальным плеером, не идет ни в какое сравнение, и поэтому является просто невостребованной.

Впрочем, и программами в обычном понимании такие элементы назвать очень трудно, ведь запустить их классическим способом (двойным кликом) просто невозможно. Их встроенные коды выполняются как раз-таки в средах интернет-браузеров.

Основная область использования элементов ActiveX (Windows 7, 8 и др.)

Чтобы было понятнее, рассмотрим несколько основных аспектов применения таких технологий. К примеру, они позволяют, как уже было сказано ранее, интегрировать в сайт аудио- или видеоплееры. Иными словами, можно послушать музыку или посмотреть клип прямо на сайте.

Заметьте, как правило, сама программа с оболочкой на ресурсе не показывается. Вместо этого используется либо перенаправление звука на аудиосистему компьютерной системы, либо открывается специальное окно для просмотра видео. Получается, что сам элемент (надстройка) работает как бы в скрытом от глаз пользователя или посетителя сайта.

То же самое касается и онлайн-игр. Здесь одну из ключевых ролей играет платформа «Фреймворк» (4-й или любой другой версии). Тут нужно сказать, что.NET Framework является уникальной разработкой корпорации Microsoft. Впрочем, и технологии Adobe ActiveX в данном случае как бы дополняют основную платформу и отвечают за открытие или воспроизведение элементов мультимедиа. Такая связка позволяет использовать различные элементы, которые изначально были написаны на разных Delphi, Visual Basic и т. д.).

Кроме того, наличие того же элемента «Фреймворк 4» (или выше — 4.5) является обязательным условием для работы множества конструктивных или управляющих элементов сайтов, причем даже в режиме оффлайн.

Отличие Java-апплетов от элементов ActiveX

Очень многие ошибочно относят апплеты Java к элементам ActiveX. Да, действительно, они очень похожи, но здесь имеется одно главное отличие.

Дело в том, что конструкции, созданные при помощи языка Java, работают на любых платформах и в любых операционных системах, в то время как ActiveX имеет узкую ориентацию исключительно на программные продукты Microsoft.

Осторожно! Вирусы!

К сожалению, сейчас в сети можно встретить очень много вирусов, маскирующихся под такие элементы, как Adobe Flash ActiveX. В связи с этим (поскольку при использовании каждый элемент загружается непосредственно в браузер, а значит, и на компьютер) рекомендуется учитывать некоторые меры безопасности.

Дело в том, что большинство пользователей особо-то никогда и не читают сообщения о предложении загрузки и использования того или иного элемента и просто соглашаются, нажимая кнопку «OK». Это чревато последствиями.

Отдельно стоит сказать, что в большинстве случаев даже штатные антивирусы или интернет-защитники не всегда способны распознавать такие угрозы. Так что установка тех же плагинов в виде Flash ActiveX должна производиться из официальных источников, грубо говоря, с сайта разработчика, который гарантирует полную безопасность в использовании того или иного дополнения.

Включение и отключение ActiveX в Internet Explorer

Теперь несколько слов о том, как правильно настроить использование таких надстроек в браузере Internet Explorer.

Сначала необходимо вызвать меню из Панели управления или раздел сервиса в самом браузере, после чего перейти к настройкам безопасности. Снизу имеется кнопка уровня безопасности «Другой». Нажав на нее, мы попадаем в меню настроек ActiveX.

Чтобы не дай бог не подхватить из интернета какую-нибудь заразу, нужно отключить загрузку неподписанных и использование элементов, помеченных небезопасными. В идеале стоит задействовать режим загрузки элементов на уровне «Предлагать».

Общие настройки безопасности

Не стоит забывать и еще об одном средстве защиты. Это брэндмауэр, называющийся еще файрволлом. Как и положено, здесь тоже имеются собственные настройки безопасности по умолчанию, однако, допустим, любители онлайн-игр могут вносить некоторые исполняемые плагины в так называемый список исключений. Опять же только при условии полной и абсолютной уверенности в их безопасности, а также отсутствия вирусов на сайтах, откуда они загружаются.

А отключать файрволл, как это рекомендуют делать некоторые разработчики для корректного работы того или иного онлайн-приложения или игры, так и вовсе не рекомендуется. А то ведь многие сетуют, мол, между приложением и брэндмауэром возникает конфликт. А отключишь, и последствий не избежать. В этом случае никакая проактивная защита со стороны антивируса не поможет.

Использование технологий ActiveX в других браузерах

Время, когда такие дополнения были рассчитаны только на Internet Explorer, уходят безвозвратно. Посудите сами, ведь сегодня технология Adobe ActiveX в виде Flash-плеера используется практически во всех браузерах и даже, так сказать, является их неотъемлемой частью.

Без этого невозможно себе представить использование возможностей любого интернет-ресурса в полном объеме, будь то музыка, видео, трехмерная графика, игры, онлайн-программы и т. д.

Впрочем, если разобраться, по большому счету из всех известных сегодня элементов и загружаемых плагинов ActiveX наиболее целесообразным выглядит использование только Flash-плеера, поскольку практически все остальные дополнения и элементы, мягко говоря, являются либо просто ненужными, либо вызывают достаточно большие сомнения по поводу их безопасности. Ведь если дать разрешение на установку сомнительного элемента в браузер, можно добиться только того, что сразу же появится прореха в системе безопасности, и именно ее будут использовать черви, вредоносные коды или шпионские программы.

И что самое печальное, в большинстве браузеров отсутствуют даже настройки управления элементами ActiveX, а используемые параметры Windows к сторонним браузерам не имеют абсолютно никакого отношения. Иными словами, они к браузерам не применяются.

Заключение

Вот мы вкратце и рассмотрели тему «ActiveX: что это?». Хочется надеяться, что вышеизложенный материал хоть немного объяснил принцип функционирования и использования таких надстроек. По всей видимости, теперь нетрудно догадаться, насколько с этими технологиями нужно быть осторожным, а то ведь, не ровен час, и последствия для всей компьютерной системы могут быть самыми плачевными. В случае Internet Explorer лучше использовать режимы безопасности выше среднего (а то и вовсе максимальный), а вот в браузерах от других разработчиков придется сто раз подумать, прежде чем согласиться на установку и использование предлагаемых сайтом элементов. Дело не только в потенциальной угрозе, а и в том, что инсталляция совершенно ненужных плагинов и элементов управления, как правило, сказывается на быстродействии самого браузера, причем не в лучшую сторону.

Сегодня мы рассмотрим:

В большинстве случаев вышеназванная потребность возникает в том случае, когда на пользовательской машине нарушен процесс взаимодействия отдельных программных элементов, которые сопровождают благоприятный сценарий работы в сети Интернет посредством одного из браузеров, в частности Internet Explorer.

Однако не редко отсутствие определенных программных элементов управления ActiveX ставят под угрозу благоприятный процесс работы ОС Windows в целом. Впрочем, оставим терминологию и перейдем к практическим решениям, где и как ActiveX скачать бесплатно.

Пояснительное введение: достаточно (чтобы понять!) о предмете нашего обсуждения

Прежде всего следует понимать, что ActiveX — это фреймворк (программная платформа), которая выступает в роли контролирующего ПО с целью обеспечения оптимального сочетания программных элементов, написанных на разных языках программирования. Самый простой пример, когда вы можете видеть непосредственное участие управляющих элементов ActivX — это кнопочные и другого вида элементы навигации, посредством которых пользователь осуществляет переходы, либо активирует дополнительный процесс в виде запуска процесса «скачивания».

Второй пример: размещенный на определенном веб ресурсе видео плеер, работающий по Flash-технологии. Кстати, наиболее чаще всего «недопонимание» пользователя, выраженное в распространенных вопросах: «Почему не воспроизводится видео на сайте?» или «Игра не запускается: что делать?», разрешается довольно простым действием: нужно установить недостающие элементы ActiveX, посредством которых и работает всем вам известный «Adobe Flash Player».

Ну и последнее: момент скачивания, скрытая установка и дальнейший процесс обмена данными с клиентской машиной, также инициализировано ActivX компонентами. Кстати, последнее явление (скрытый процесс взаимодействия машинного кода с ОС посредством браузерных систем) может нести довольно серьезную угрозу вирусного заражения компьютера. Именно поэтому стоит особое внимание уделять тем моментам, когда в процессе веб серфинга некое приложение пытается получить доступ к системным данным вашей ОС.


Более простыми словами: веб сервис посылает запрос на разрешение интегрироваться в браузерную среду, что в свою очередь и может привести к различным программным неполадкам. Увы, соперничество среди людей в Сети, в своем абсолютном проявлении, происходит по тайному сценарию, технологиям непонятным для рядового пользователя. Впрочем, защититься всегда можно…

Скачиваем необходимый ActiveX

Действительно, различных модулей, плагинов и других программных элементов, которые работают в плотной связке с ActivX, мягко говоря, предостаточно. Однако, как узнать, какой именно программный элемент требует своей замены, в виду повреждения или по причине его полного отсутствия в ОС Windows? На самом деле все довольно просто — установите полный пакет ActiveX, и проблема будет решена.

Подводя итоги

Итак, теперь вам стало известно, где и как скачать ActiveX компоненты. Надеемся статья вам помогла понять, на сколько важен процесс обновления вышеописанных ПО компонентов, и о чем следует знать в процессе использования вашего браузера. Безопасного вам веб серфинга и безошибочных интернет сессий!

Современные браузеры – это довольно гибкие программы, которые способны легко настраиваться под нужды пользователя. Делается это с помощью плагинов – специальных подпрограмм, расширяющих возможности этих самых браузеров. Если же вы хотите, чтобы ваш веб-обозреватель умел воспроизводить видео из Интернета и различные flash-элементы, вам необходимо установить специальный flash-плеер. В случае с обозревателем Internet Explorer, эту роль на себя берет плагин ActiveX, о котором далее и будет идти речь.

Особенности дополнения ActiveX

Flah-плеер ActiveX – это расширение для браузера Internet Explorer (IE), которое позволяет воспроизводить видео-элементы в сети Интернет. Главной особенностью технологии ActiveX является наличие специальных элементов управления, которые активно используются при создании веб-страниц, что позволяет при необходимости загружать видео или аудио-плеер для воспроизведения меди информации.

Обычно, ActiveX идет вместе с браузером IE, но если веб-обозреватель не имеет в наличии этого расширения, то при загрузке веб-страницы, требующей ActiveX, пользователь будет уведомлен об этом.

Как установить плагин?

    1. Откройте Internet Explorer, перейдите ко вкладке Сервис , где выберите Свойства обозревателя .
    1. В появившемся окне кликните по Безопасность , где нажмите на Другой .
    1. Перед вам появится список различных компонентов. Листайте этот список до тех пор, пока не найдете меню Элементы ActiveX и модули подключения . Войдите в это меню.
    2. Далее, установите триггеры так, как это показано на скриншоте.
  1. После этих действий подтвердите внесенные изменения и перезагрузки компьютер.

Готово. Элемент ActiveX настроен и готов к работе. Теперь вы можете спокойно смотреть видео и воспроизводить музыку в вашем Internet Explorer.

Вызовите главное меню операционной системы Microsoft Windows нажатием кнопки «Пуск» и перейдите в пункт «Все программы» для выполнения операции установки элемента управления ActiveX.

Укажите пункт «Свойства обозревателя» и перейдите на вкладку «Безопасность» открывшегося диалогового окна.

Нажмите кнопку «Другой» в разделе «Уровни безопасности» и укажите желаемые параметры элемента «Панель информации», позволяющей выполнить следующие действия:
— отображать всплывающее окно;
— устанавливать элементы управления ActiveX;
— загружать выбранный файл;
— выполнять запуск активного содержимого загруженного файла;
— запускать элементы управления ActiveX при отключенном безопасном режиме.

Вернитесь в главное меню «Пуск» и введите значение gpedit.msc в текстовое поле строки поиска для выполнения операции редактирования параметров работы инструмента установки элементов ActiveX.

Подтвердите выполнение команды запуска утилиты «Редактор групповых политик» нажатием функциональной клавиши Enter и нажмите кнопку «Да» в открывшемся окне запроса системы.

Раскройте узел «Конфигурация компьютера» двойным кликом мыши и перейдите в пункт «Административные шаблоны».

Выберите раздел «Компоненты Windows» и укажите пункт «Политика локального компьютера».

Укажите команду «Изменить» и примените флажок на поле «Включено» в открывшемся диалоговом окне.

Воспользуйтесь опцией «Показать» в группе «Параметры» и введите желаемый URL-адрес в поле «Имя параметра» следующего диалогового окна.

Примените флажки на необходимых полях значений параметров службы установщика:
— установка элементов управления ActiveX с доверенными подписями;
— установка подписанных элементов управления ActiveX;
— установка неподписанных элементов управления ActiveX;
— исключения при ошибках HTTS-соединения
и подтвердите применение выбранных изменений нажатием кнопки OK.

  • Администрирование службы установки ActiveX в Windows 7

Элементы activex представляют собой небольшие программки, нередко называемые надстройками, которые используются в интернет-сайтах. Основное их назначение – создание удобства для пользователя: к примеру, с помощью данной надстройки можно выполнить анимацию объектов в окне обозревателя.

  • — персональный компьютер с доступом к глобальной сети.

Сайт, в котором использованы приложения, добавьте в зону доверенных узлов. Для этого откройте «Панель управления» и выберите «Свойства обозревателя». Здесь (во вкладке «Безопасность») активизируйте зону «Надежные узлы» и нажмите на кнопку «Узлы». Уберите установленную по умолчанию команду «Для всех узлов этой зоны требуется проверка серверов (https:)». Вместо этого в поле вбейте адрес нужного сайта. Затем нажмите кнопочку «Добавить».

Во вкладке «безопасность» кликните по кнопке «Другой» и в открывшемся на экране окне активируйте параметр «Выполнять сценарии элементов ActiveX, помеченных как безопасные», установив выбор на поле «Разрешить». Подтвердите все изменения и закройте данное окно.

Откройте сайт, который был добавлен в доверительную зону. Перейдите на закладку «Сервис» по ссылке «Информация». После чего будет получен запрос на установку элемента activex. Кликните по информационной панели и из высветившегося меню выберите опцию «Установить эту надстройку».

После того как браузер начнет закачивание плагина, на экране появится новый запрос: «Установить?» Кликните по кнопке «Установить». Затем, когда завершится установка данного компонента, в панели состояния браузера (нижней его части) высветится сообщение «Готово». Закройте это окно.

Устанавливая activex, убедитесь в том, что данный веб-узел заслуживает доверия! Нередко этот плагин может использоваться владельцами сайтов, чтобы отследить посещаемые пользователем ПК интернет-ресурсы, а также для получения доступа к личным сведениям. Кроме того, в элементе activex может содержаться программный код, позволяющий вредоносному ПО использовать этот плагин в своих целях.

Если пользователь ПК не хочет устанавливать элемент activex, то при выборе установки элемента управления в обозревателе Internet Explorer нужно нажать на кнопку «Не запускать».

  • Безопасно ли устанавливать элементы управления ActiveX на компьютер?

Задача установки и запуска определяемого пользователем сервиса в операционной системе Microsoft Windows является стандартной и выполняется с помощью специализированной утилиты instsrv.exe.

Нажмите кнопку «Пуск» для вызова главного меню операционной системы Microsoft Windows и перейдите в пункт «Выполнить» для осуществления процедуры установки необходимого сервиса.

Введите значение cmd в поле «Открыть» и подтвердите выполнение команды запуска инструмента «Командная строка» нажатием кнопки OK.

Укажите значение имя_диска:\полный_путь\instsrv.exe имя_сервиса\srvany.exe в текстовое поле командной строки и нажмите функциональную клавишу Enter для подтверждения выполнения команды.

Вернитесь в главное меню «Пуск» и еще раз перейдите в пункт «Выполнить» для внесения необходимых изменений в записи системного реестра.

Введите значение regedit в поле «Открыть» и подтвердите выполнение команды запуска инструмента «Редактор реестра» нажатием кнопки OK.

Раскройте ветку реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\имя_сервиса и откройте меню «Правка» верхней панели инструментов окна редактора.

Укажите команду «Добавить раздел» и введите значение «Параметры» в поле «Название раздела».

Не вводите никаких значений в поле «Класс» и подтвердите выполнение команды нажатием кнопки OK.

Укажите группу «Параметры» и снова раскройте меню «Правка» верхней панели инструментов окна редактора.

Укажите команду «Добавить параметр» и введите следующие значения:
— Application — в поле «Имя параметра»;
— REG_SZ — в поле «Тип данных»;
— имя_диска:\полный_путь\имя_сервиса с расширением — в поле «Строка».

Подтвердите выполнение команды нажатием кнопки OK и завершите работу инструмента «Редактор реестра».

Перезагрузите компьютер для автоматического запуска установленного сервиса или измените тип запуска на «Вручную» в панели управления служб. Данное действие позволит осуществлять запуск установленного сервиса:
— с помощью компонента «Службы» а панели управления;
— командой net start имя_сервиса в командной строке;
— командой имя_диска:\полный_путь\Sc.exe start имя_сервиса в командной строке.

  • Создание определяемой пользователем службы в 2020

Элементы ActiveX используются не только веб-браузерами, но и программами из пакета Microsoft Office, например, MS Outlook или MS Publisher. Перед активацией этого параметра необходимо убедиться, что информация была получена из надежного источника.

Пользователи, которые активно работают в сети Интернет, могут встретить проблему при запуске некоторых приложений в браузере – ошибку “Загрузка ActiveX-компонента не была выполнена”. Наиболее часто данная проблема появляется в браузере Internet Explorer. Дальше мы постараемся доходчиво объяснить что это такое и как исправить ошибку загрузки этой надстройки.

Что это за ошибка?

Для общего понимания дела, давайте разберемся с предметом самой ошибки – ActiveX-компонентой. Ведь поняв что это такое, сразу можно догадаться про дальнейшие действия.

Технология ActiveX – это набор специальных приложений, которые требуются для воспроизведения различных мультимедийных файлов, плагинов и флеш-компонент в браузере Microsoft Internet Explorer. Данные компоненты идут по умолчанию при установке Windows (XP/7/8/10)

В настоящее время, от этой технологии уже отказались даже в Microsoft, а многие популярные браузеры активно переходят на технологию NPAPI. Но все же, еще есть некоторые девайсы, приложения и веб серверы, которые запрашивают активацию ActiveX.

Также в элементах ActiveX предусмотрены средства безопасности, которые блокируют загрузку нежелательного контента и приложений, собирающих личные данные. Фильтры АктивИкс отслеживают такие веб-сайты и запрещают загрузку данных с них, после чего пользователь видит уведомление об ошибке – “Загрузка ActiveX-компонента не была выполнена”. Наиболее актуальна такая ошибка при посещений сайтов онлайн банкинга, которые содержат биржевые бегущие строки, особые панели инструментов и формы ввода данных.

Как исправить ошибку загрузки компоненты?

Итак, есть несколько путей, позволяющих обойти запрет загрузки веб-ресурсов. Мы нашли наиболее простые решения данной проблемы, поэтому пробуйте все их по-пунктам:

Заключение

Если все эти варианты не помогли, тогда стоит обратиться в поддержку ресурса. Если на этих сайтах возникают подобные сбои, то вполне вероятно, что есть собственные решения в данной ситуации. Надеюсь вы поняли что делать с ошибкой “Загрузка ActiveX-компонента не была выполнена” и как можно её исправить простыми способами.

Илон Маск рекомендует:  Что такое код ctype_alnum
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL