ActiveX

ActiveX

打開的集成平台
ActiveX是一個打開的集成平台,為開發人員、用戶和Web生産商提供了一個快速而簡便的在Internet和Intranet創建程序集成和内容的方法。使用ActiveX,可輕松方便的在Web頁中插入多媒體效果、交互式對象、以及複雜程序,創建用戶體驗相當的高質量多媒體CD-ROM。
    軟件名稱:ActiveX 軟件平台:Windows Macintosh 軟件語言: 開發商:Microsoft 軟件授權: 軟件版本: 軟件大小: 主要技術:組件對象模型(COM) 應用範圍:Internet

微軟定義

根據微軟權威的軟件開發指南MSDN(MicrosoftDeveloperNetwork)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或對象,可以将其插入到WEB網頁或其它應用程序中。

控件

以前稱為OLE控件或OCX控件是組件(或對象)打包别人編程功能.以便您可以重用Web頁或在其他程序中插入。例如,随InternetExplorer一起提供ActiveX控件可用于增強Web頁具有複雜格式功能和動畫。

ActiveX控件結合了Java程序和Netscape插件優點,還可以用許多編程語言,包括所有Microsoft編程和在數據庫語言編寫程序中使用ActiveX控件。

使用ActiveX控件可快速實現小型的組件重用、代碼共享。

除此之外,為了滿足更多地需求,也出現集成于各種開發環境的ActiveX控件,由第三方提供,如ComponentOneStudioforActiveX、ActiveReportsCOM、TXTextControlActiveX等。這些ActiveX控件有助于開發出商業級的Windows應用程序。應該根據實際情況,合理使用。

文檔

用一個ActiveX-識别Web浏覽器如InternetExplorer,浏覽時ActiveX文檔使您能夠使用自己的工具欄和菜單可打開程序。這意味着您可以通過使用ActiveX-識别Web浏覽器打開非HTML文件,如MicrosoftExcel或MicrosoftWord文件。

腳本

ActiveX腳本支持最常用腳本語言,包括MicrosoftVisualBasic腳本和JavaScript。ActiveX腳本可用于集成行為若幹ActiveX控件或Java程序從Web浏覽器或服務器,擴展其功能。

特點

ActiveX是一種技術,它允許Web作者将一些小程序嵌入Web頁或其他接口中,以便提供附加的功能。這些嵌入式程序稱為ActiveXControls。開發人員可以使用任何支持MicrosoftCommonObjectModel的編程語言來創建ActiveX控件。在因特網上,ActiveX插件軟件的特點是:一般軟件需要用戶單獨下載然後執行安裝,而ActiveX插件是當用戶浏覽到特定的網頁時,IE浏覽器即可自動下載并提示用戶安裝。ActiveX插件安裝的一個前提是必須經過用戶的同意及确認。

相關内容

1.浏覽器如何保證ActiveX插件的安全性?

當通過Internet發行軟件時,軟件的安全性是一個非常引人注意的問題,IE浏覽器通過以下的方式來保證ActiveX插件的安全:

ActiveX使用了兩個補充性的策略:安全級别和證明,來追求進一步的軟件安全性;

Microsoft提供了一套工具,可以用它來增加ActiveX對象的安全性;

通過Microsoft的驗證代碼工具,可以對ActiveX控件進行簽名,這告訴用戶你的确是控件的作者而且沒有他人篡改過這個控件;

為了使用驗證代碼工具對組件進行簽名,必須從證書授權機構獲得一個數字證書;證書包含表明特定軟件程序是正版的信息,這确保了其他程序不能再使用原程序的标識。證書還記錄了頒發日期。當您試圖下載軟件時,InternetExplorer會驗證證書中的信息,以及當前日期是否在證書的截止日期之前。如果在下載時該信息不是最新的和有效的,InternetExplorer将顯示一個警告;

在IE默認的安全級别中,ActiveX控件安裝之前,用戶可以根據自己對軟件發行商和軟件本身的信任程度,選擇決定是否繼續安裝和運行此軟件。

在最新的IE7中,安全性有進一步的提高。

2.關于三個概念:ActiveX、OLE和COM

熟悉面向對象編程和網絡編程的人一定對ActiveX、OLE和COM/DCOM這些概念不會陌生,但是它們之間究竟是什麼樣的關系,對許多們還是比較模糊的。在具體介紹它們的關系之間,我們還是先明确組件(Component)和對象(Object)之間的區别。

組件是一個可重用的模塊,它是由一組處理過程、數據封裝和用戶接口組成的業務對象(RulesObject)。組件看起來像對象,但不符合對象的學術定義。它們的主要區别是:

1)組件可以在另一個稱為容器(有時也稱為承載者或宿主)的應用程序中使用,也可以作為獨立過程使用;

2)組件可以由一個類構成,也可以由多個類組成,或者是一個完整的應用程序;

3)組件為模塊重用,而對象為代碼重用。

現在,比較流行的組件模型有COM(ComponentObjectModel,對象組件模型)/DCOM(DistributedCOM,分布式對象組件模型)和CORBA(CommonObjectRequestBrokerArchitecture,公共對象請求代理體系結構)。到這裡,已經出現了與本文相關的主題COM,而CORBA與本文無關,就不作介紹。之所以從組件與對象的區别說起,是想讓大家明确COM和CORBA是處在整個體系結構的最底層,如果暫時對此還不能理解,不妨繼續往下看,最後在回過頭看一看就自然明白了。

現在開始闡述ActiveX、OLE和COM的關系。首先,讓大家有一個總體的概念,從時間的角度講,OLE是最早出現的,然後是COM和ActiveX;從體系結構角度講,OLE和ActiveX是建立在COM之上的,所以COM是基礎;單從名稱角度講,OLE、ActiveX是兩個商标名稱,而COM則是一個純技術名詞,這也是大家更多的聽說ActiveX和OLE的原因。

既然OLE是最早出現的,那麼就從OLE說起,自從Windows操作系統流行以來,“剪貼闆”(Clipboard)首先解決了不同程序間的通信問題(由剪貼闆作為數據交換中心,進行複制、粘貼的操作),但是剪貼闆傳遞的都是“死”數據,應用程序開發者得自行編寫、解析數據格式的代碼,于是動态數據交換(DynamicDataExchange,DDE)的通信協定應運而生,它可以讓應用程序之間自動獲取彼此的最新數據,但是,解決彼此之間的“數據格式”轉換仍然是程序員沉重的負擔。

對象的鍊接與嵌入(ObjectLinkingandEmbedded,OLE)的誕生把原來應用程序的數據交換提高到“對象交換”,這樣程序間不但獲得數據也同樣獲得彼此的應用程序對象,并且可以直接使用彼此的數據内容,其實OLE是Microsoft的複合文檔技術,它的最初版本隻是瞄準複合文檔,但在後續版本OLE2中,導入了COM。由此可見,COM是應OLE的需求而誕生的,所以雖然COM是OLE的基礎,但OLE的産生卻在COM之前。COM的基本出發點是,讓某個軟件通過一個通用的機構為另一個軟件提供服務。

COM是應OLE的需求而誕生,但它的第一個使用者卻是OLE2,所以COM與複合文檔間并沒有多大的關系,實際上,後來COM就作為與複合文檔完全無關的技術,開始被廣泛應用。這樣一來,Microsoft就開始“染指”通用平台技術。但是COM并不是産品,它需要一個商标名稱。而那時Microsoft的市場專家們已經選用了OLE作為商标名稱,所以使用COM技術的都開始貼上了OLE的标簽。雖然這些技術中的絕大多數與複合文檔沒有關系。Microsoft的這一做法讓人産生這樣一個誤解OLE是僅指複合文檔呢?還是不單單指複合文檔?其實OLE是COM的商标名稱,自然不僅僅指複合文檔。但Microsoft自己恐怕無法解釋清楚,這要花費相當的精力和時間。

于是,随着Internet的發展,在1996年春,Microsoft改變了主意,選擇ActiveX作為新的商标名稱。ActiveX是指寬松定義的、基于COM的技術集合,而OLE仍然僅指複合文檔。當然,ActiveX最核心的技術還是COM。ActiveX和OLE的最大不同在于,OLE針對的是桌面上應用軟件和文件之間的集成,而ActiveX則以提供進一步的網絡應用與用戶交互為主。

到這裡,大家應該對ActiveX、OLE和COM三者的關系有了一個比較明确的認識,COM才是最根本的核心技術,所以下面的重點COM。讓對象模型完全獨立于編程語言,這是一個非常新奇的思想。這一點從C++和Java的對象概念上,我們就能有所了解。但所謂COM對象究竟是什麼呢?為了便于理解,可以把COM看作是某種(軟件)打包技術,即把它看作是軟件的不同部分,按照一定的面向對象的形式,組合成可以交互的過程和以組支持庫。

COM對象可以用C++、Java和VB等任意一種語言編寫,并可以用DLL或作為不同過程工作的執行文件的形式來實現。使用COM對象的浏覽器,無需關心對象是用什麼語言寫的,也無須關心它是以DLL還是以另外的過程來執行的。從浏覽器端看,無任何區别。這樣一個通用的處理技巧非常有用。例如,由用戶協調運行的兩個應用,可以将它們的共同作業部分作為COM對象間的交互來實現(當然,現在的OLE複合文檔也能做到)。

為在浏覽器中執行從Web服務器下載的代碼,浏覽器可把它看作是COM對象,也就是說,COM技術也是一種打包可下載代碼的标準方法(ActiveX控件就是執行這種功能的)。甚至連應用與本機OS進行交互的方法也可以用COM來指定,例如在Windows和WindowsNT中用的是新API,多數是作為COM對象來定義的。

可見,COM雖然起源于複合文檔,但卻可有效地适用于許多軟件問題,它畢竟是處在底層的基礎技術。用一句話來說,COM是獨立于語言的組件體系結構,可以讓組件間相互通信。随着計算機網絡的發展,COM進一步發展為分布式組件對象模型,這就是DCOM,它類似于CORBA的ORB,本文對此将不再做進一步的闡述。通過上面的講述相信大家一定對ActiveX、OLE和COM/DCOM的關系有了一個清楚的了解。

規避風險

ActiveX控件有較強的功能,但也存在被人利用的隐患,網頁中的惡意代碼往往就是利用這些控件編寫的小程序,隻要打開網頁就會被運行。所以要避免惡意網頁的攻擊隻有禁止這些惡意代碼的運行。

IE對此提供了多種選擇,具體設置步驟是:“工具”→“Internet選項”→“安全”→“自定義級别”,建議您将ActiveX控件與相關選項禁用,謹慎些總沒有錯!

另外,在IE的安全性設定中我們隻能設定Internet、本地Intranet、受信任的站點、受限制的站點。不過,微軟在這裡隐藏了“我的電腦”的安全性設定,通過修改注冊表把該選項打開,可以使我們在對待ActiveX控件時有更多的選擇,并對本地電腦安全産生更大的影響。

下面是具體的方法:打開“開始”菜單中的“運行”,在彈出的“運行”對話框中輸入Regedit.exe,打開注冊表編輯器,點擊前面的“”号順次展開到:HKEY_CURRE-NT_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettingsZones0,在右邊窗口中找到DWORD值“Flags”,默認鍵值為十六進制的21(十進制33),雙擊“Flags”,在彈出的對話框中将它的鍵值改為“1”即可,關閉注冊表編輯器。無需重新啟動電腦,重新打開IE,再次點擊“工具→Internet選項→安全”标簽,你就會看到多了一個“我的電腦”圖标,在這裡你可以設定它的安全等級。将它的安全等級設定高些,這樣的防範更嚴密。

相關詞條

相關搜索

其它詞條