ПредишенСледващото

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

Добавянето на нови свойства и обработват събитие в контрола ActiveX.
ActiveX тестване на HTML документ

ozdadim нов ActiveX контрол с помощта на Delphi меню File | Нова | Други ..., изберете маркер и се обадете на ActiveX експертът ActiveX библиотека. Запазване на проекта под AXTest за името. След това отново се обръщат към меню файла | Нова | Други ... | ActiveX и се обадете експерт активна форма. В диалоговия прозорец, промяната на името собственост на ActiveX Новия на AFTest. Към получената фигура ще постави етикет (TLabel) и бутон (TButton).

За разлика от определението на нов имот на контрола ActiveX, когато създавате ново събитие след пускането на опресняване в AFTestImpl1.pas модул не заготовки се появяват за изпълнението на кода. Това е разбираемо: кода, за да се справят събития ще се реализира в клиентското приложение, което ще използвате този контрол ActiveX. В същото ActiveX контрола, трябва да се обадите този манипулатор. Тъй като това беше решено, че събитието, генерирани в резултат на натискането на един бутон Button1, а след това го наричат ​​от метод Button1.OnClick:

Проверете дали FEvents <> нулева стойност е необходимо, тъй като приложението на клиента може да не поддържа интерфейса за уведомяване, и в този случай, е опит да се обадя на несъществуващи метод ще доведе до по изключение.

Сега, изпълнява команда проекта меню | WEB възможности за внедряване и попълнете диалоговия прозорец (фиг. 3).

Ако не можете да получите това изображение, а след това по-нататъшни действия са безполезни. Причините, които не могат да работят за контрол на ActiveX в Microsoft Internet Explorer, може да бъде, както следва:

  • IIS не е инсталиран или PWS;
  • неправилно попълнени в диалоговия прозорец Опции за лентата от възможности за внедряване;
  • система за сигурност не се свежда до ниско ниво.

Създаване обработват събитие в HTML-документи

За да създадете манипулатор събитие в HTML-документа, ние използваме предишния проект. Създаденият файл AXTest.htm направи следните промени (добавената Кодът е с удебелен шрифт):

За да работите с контрол скриптови езици, трябва да има идентификатор (ID = в маркера ), От чието име се осъществява достъп от кода на тези езици. събитие име манипулатор трябва да започва с идентификатор, следван от долна черта (_), а след това - името на събитието манипулатор, както е определено в контрола dispinterface на ActiveX. Ако манипулатор на събитие има параметри, те също са дадени.

Обръщайки се към тази страница от Microsoft Internet Explorer и щракнете върху бутона Run скрипт, можете да видите промените в таговете заглавните (фиг. 5).

Ако контролната sodavat на ActiveX с Delphi 3, когато се опитате да стартирате скрипта с някои настройки на Microsoft Internet Explorer, може да получите съобщение на вашия браузър, за да потенциално опасни софтуер. Как да се избегне това, е описано в следващия раздел.

система за сигурност на Microsoft Internet Exprorer и цифров подпис

Електронен подпис, в допълнение към информацията за производителя, и има редица друга полезна информация. Например, ако файл * .OCX беше променена след добавяне на електронен подпис, а след това ще се докладват незабавно на стартирането на такъв контрол.

За търговско развитие на ActiveX контроли, е желателно да придобие Microsoft ActiveX SDK. В допълнение към подробна документация и редица полезни ресурси като тя съдържа MAKECER програма, която генерира сертификати за изпитване.

По този начин, подготовката на международните електронни сертификати в страната ни е сериозен проблем днес. В същото време липсата на потребителския електронен подпис води или постоянно напомняне с него за това (или дори забрана за зареждане на ActiveX контроли с високо ниво на сигурност на браузъра) или да го кара да деактивирате системата за сигурност в Интернет. Разбира се, наличието на електронен сертификат, не гарантира отсъствието на потенциално вредно съдържание, но най-малкото дава възможност на клиента да се установи източникът на вредно съдържание. В допълнение, той го прекодира файла с помощта усъвършенствани алгоритми за криптиране и изчислява проверка по сума. Ако някой се опита да направи промени в контрола кода на ActiveX, че подобен опит ще бъдат незабавно открива при използване на контролна и контрола ActiveX няма да работи в Microsoft Internet Explorer. Поради това, наличието на електронен подпис е желателно, дори когато работи на интранет, а дори и при използване на ActiveX контрола в интернет е просто необходимо.

Да се ​​върнем към предишния проект. Всички тестове, описани тук, са направени с Microsoft Personal Web Server 5.0. и Microsoft Internet Explorer 5.0. Ниво на сигурност Microsoft Internet Explorer трябва да бъде определен от обичай. Стойностите на всички възможности, свързани с ActiveX контроли в този диалогов прозорец се появява, когато в положение Prompt.

и в сценария събитие манипулатор OnBtClick, както е описано в предишния раздел. След това можете да започнете да тества системата за сигурност на Microsoft Internet Explorer.

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

В допълнение, трябва да се обърне внимание на опцията «инициализира и скрипт ActiveX контроли, не маркиран като безопасен» в диалоговия прозорец Настройки за сигурност на Microsoft Internet Explorer браузър. Въпреки че стойността на опциите му е била поставена бързо и от HTML-документ, инициализира Параметърът, предупреждение е било получено. По този начин, Microsoft Internet Explorer счита безопасно от гледна точка на инициализация на данни и скриптове на ActiveX контрола.

Причината за това е, че контролите на ActiveX Създаване използване Delphi версии по-късно от IObjectSafety интерфейс третия подкрепа. Две методи, определени в този интерфейс:

INTERFACESAFE_FOR_UNTRUSTED_CALLER (= 1, позволява анонимен достъп до интерфейса)

INTERFACESAFE_FOR_UNTRUSTED_DATA (= 2 позволява на потребителя да изпраща анонимни данни на интерфейса).

Да предположим, че създателят на ActiveX Control вярва, че ако скриптът или неправилна инициализация тези данни, за контрол може да причини увреждане на клиента. В този случай, той е длъжен да пренапише приложени методи IObjectSafety. Ако контрола ActiveX се реализира в TActiveXControl клас, не е трудно, тъй като и двата метода IObjectSafety обявени виртуални в защитената част. Но за един клас-потомък TActiveForm това не е възможно, тъй като активната форма не е потомък на TActiveXControl клас. За да промените IObjectSafety методи в активна форма, трябва да се приведе отново в действие на посочения интерфейс. Методите на новия интерфейс "неясен" стар и поради това, те ще бъдат призовани от клиенти.

Първо трябва да добавите IObjectSafety интерфейс към списъка на поддържаните интерфейси TAFTest:

TAFTest = клас (TActiveForm, IFilledBox, IObjectSafety)

Освен това, неофициалния раздел се определят два метода - GetInterfaceSafetyOptions и SetInterfaceSafetyOptions в stdcall директивата повикване и раздел изпълнение създаде прилагане на следните методи:

Тестовите резултати на тази заявка е различен от предишния (фиг. 7).

Виждаме, че Internet Explorer, предупреждава потребителя за възможните рискове от съдържанието. Ако стойността на нивото на сигурност в Близкия този контрол ще започне автоматично, но неговите инициализация данни няма да бъдат изпълнени, тъй като няма да бъде извършена и скриптове. Същият ефект се постига чрез натискане на бутона Не в диалоговия прозорец, който осигурява Microsoft Internet Explorer (вж. Фиг. 7).

Dynamic инициализация на ActiveX контроли в заявлението

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

В Delphi, ActiveX контроли, и работи по следния начин: на първо място, наречено Компонент Команда | Внос ActiveX контрол, избраният ActiveX компонент пуснати на палитрата, а след това се поставя на форма, а в качествата на климата на инспектора на обекта и да се създаде със събития. Възниква въпросът: как да се инициализира ActiveX контрол по време на изпълнение - това е, без да се регистрират на ActiveX компоненти на палитрата, създаване на работна копие от него по време на работата на приложенията?

От горните разсъждения става ясно, че освен да се инициализира и да се създаде работна копие на контрола ActiveX за прилагането на работата изисква да се създаде VCL-контейнер, където ще бъде поставен. Ролята на такъв контейнер в Delphi извършва TOleControl клас, който е обявен в OleCtrls.pas модул. Основният метод за този клас - InitControlData. При този метод, трябва да се определи GUID на фабричните класове ActiveX контрол, броят на елементите със събития и връзка интерфейс, изпълнявани на манипулатори клиент събития, както и линк към интерфейса на лиценз е необходимо да се обадя методи IClassFactory2. метод InitControlData се нарича автоматично след работа TOleControl дизайнер.

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

Методи и InitControlData EbeggAX осъзнават следва:

Ние събрахме форма един бутон и да се създаде прост манипулатор събитие:

Сега можете да стартирате вашата кандидатура и по време на пресата. ActiveX контрол се появява в тази област. Промяна на клас фабриката GUID на, можем да видим различен резултат (виж фиг. 8).

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

Cougar Съвсем наскоро компанията представи нова серия от захранващи устройства за традиционните персонални компютри - VTX, насочени към потребителите с ограничен бюджет. Този модел преглед Cougar VTX600 ще се счита, че се дължи на нейните характеристики е един от най-популярните в линията на захранвания

На ежегодното събитие Капсаицинът SIGGRAPH в Лос Анджелис, AMD се утвърди на пазара на PC за най-висок клас с нови процесори Ryzen Threadripper и GPU «Вега»

За прост и удобен изграждане на обикновените потребители на мрежи компания ZyXEL пусна следващата версия на своята интернет хъб за свързване с 3G / 4G мрежи чрез USB-модем с Wi-Fi точка за достъп - ZyXEL Keenetic 4G III, които ние считаме, в този преглед

За да си и така наскоро добавени голямо семейство на рутери и рутер компания ASUS две много интересни модели: флагманът 4G-AC55U и по-лесно 4G-N12. В тази статия, ще се счита за водещ модел на ASUS 4G-AC55U на

Млад, но амбициозна фирма КРЕЗ-рано тази година пусна нов, оригинален модел лаптоп КРЕЗ Ninja (модел TM1102B32), работещ на Windows 10. Тъй като този компютър разполага с екран въртящ, тя може да служи като универсално решение - тя може да се използва успешно за работа, както и за проучване и за игра

Ако често отпечатвате снимки и вече уморени, за да промените касети с мастило в принтера, погледнете MFP Epson L850. A голям ресурс на консумативи, отлично качество на печат, широка гама от функции - това са само някои от предимствата на този модел

Свързани статии

Подкрепете проекта - споделете линка, благодаря!