當前位置:首頁 » 編程軟體 » activex編程

activex編程

發布時間: 2022-05-26 02:36:40

❶ ActiveX是什麼,干什麼的

ActiveX 在廣義上是指微軟公司的整個COM架構,但是現在通常用來稱呼基於標准COM介面來實現對象連接與嵌入的ActiveX控制項。後者是指從VBX發展而來的,面向微軟的Internet Explorer技術而設計的以OCX為擴展名的OLE控制項。通過定義容器和組件之間的介面規范,如果編寫了一個遵循規范的控制項,那麼可以很方便地在多種容器中使用而不用修改控制項的代碼。同樣,通過實現標准介面調用,一個遵循規范的容器可以很容易地嵌入任何遵循規范的控制項。由於OLE在ActiveX控制項中的應用的普及,現在OLE技術中只有少數獨立於 ActiveX技術,例如復合文檔。

一些瀏覽器,例如網景瀏覽器等等都不同程度上支持ActiveX控制項。這允許網頁通過腳本和控制項交互產生更加豐富的效果,同時也帶來一些安全性的問題。Internet Explorer和一些其他應用程序同時支持ActiveX Documents介面規范,允許在一個應用程序中嵌入另一個支持這個規范的應用程序。很多應用軟體,例如微軟的Microsoft Office系列和Adobe的Acrobat Reader都實現了這個規范。

伺服器端ActiveX組件通常是指運行在服務進程中的組件。一個典型應用是在IIS中運行的ASP腳本創建的ActiveX Data Objects,也稱ADO。
Vista系統常用英文專業詞語解釋大全
一個微軟開發出來的技術,是OLE和COM的結合產物(OLE,對象鏈接和嵌入;COM,組件對象模型),允許網頁開發人員來建立交互性的網頁,並提供和java小程序同樣的功能。

❷ ActiveX腳本編程的技術架構

從技術的角度來看,ActiveX Scripting腳本引擎實際上是一組COM介面,通過這組介面建立應用程序和腳本之間的關系。腳本引擎是ActiveX Scripting技術的實現,一個應用系統如果實現了有關的標准介面, 那麼它就可以通過腳本引擎提供對腳本語言的支持。應用系統為了支持腳本語言,首先它要實現幾個標准介面,然後它把自己的一些被控對象暴露出來;腳本文件是一個文本文件,文件中包含了一些程序代碼;腳本引擎本身是一個COM 對象,它負責對腳本文件的解釋和執行工作,在必要時通過應用系統的介面與其交互。
應用系統首先需要創建腳本引擎對象,並設置必要的參數,然後裝入腳本文件,再啟動引擎,使引擎進入連接狀態(即運行腳本狀態),通常我們通過用戶顯式操作(例如通過菜單命令或快捷鍵)完成啟動操作;應用系統也可以終止引擎的運行,使其進入無連接狀態。在引擎處於連接狀態時,當特定的事件被激發時,腳本文件中的相應的事件控制函數會被執行;在引擎處於無連接狀態時,即使有事件發生,腳本文件中的事件控制函數也不會被執行。

❸ 怎麼樣使用VC++設計ActiveX控制項

ActiveX是Microsoft提出的一組使用COM(ComponentObjectModel,部件對象模型)使得軟體部件在網路環境中進行交互的技術集。它與具體的編程語言無關。作為針對Internet應用開發的技術,ActiveX被廣泛應用於WEB伺服器以及客戶端的各個方面。本文著重介紹以Visual C++ 5.0為工具,利用系統提供的AppWizard快速構造一個簡單的ActiveX控制項。

通常VC++5.0提供兩個途徑開發ActiveX控制:MFC和ATL(ActiveXTemplateLibrary)。使用MFC,可以不必理會控制介面的細節,把注意力集中在控制本身的功能上,但是生成的控制比較大。而且,客戶端如果要運行此ActiveX控制,必須擁有相應版本的MFC類庫的DLL,否則,必須同時下載這些巨大的類庫;使用ATL,由於不汲及MFC的標准類庫,生成的控制相對較小,但開發者必須了解COM、OLE技術的細節。這里,我們主要說明一下使用MFC開發ActiveX控制的方法,因為這種方法相對比較容易。

在Microsoft Developer Studio環境下,按如下的操作步驟可以快速生成一個標準的ActiveX控制項。首先,啟動系統的AppWizard,用File菜單下的New菜單項創建新的項目。注意:我們選擇的是列表框中的MFC ActiveX ControlWizard項。也可以使用ATL COM AppWizard項來產生ActiveX控制項,這樣實現的控制項的最終代碼量較小,但由於用這種方法加入的ActiveX控制項對象從最基本的COM對象出發,故不能使用MFC類庫中的COleControl所提供的強大功能。而用MFC ActiveX ControlWizard項則產生以COleControl為基類的控制項對象類,它繼承了所有COleControl類中實現的OLE控制項的特性,包括窗口對象特性和方法、屬性及事件等。接著,按照系統給出的提示信息逐步完成創建工作。用戶可根據實際應用的要求定製控制項的各項特性。

我們假定項目名為Test。創建工作完成後,打開Workspace文件Test.dsw,可以看到系統生成的Test控制項框架,主要的類及實現功能描述見下表:

派生類 基類 實現功能
CTestApp COleControlMole 控制項實例的初始化和撤消
CTestCtrl COleControl 控制項窗口的創建、更新及消息處理
CTestPropPage COlePropertyPage 控制項屬性頁的設置及與實際屬性值的交換

編譯此項目,生成Test.ocx。在當前的Developer Studio環境下,這個控制項已經被自動注冊了。用系統提供的工具ActiveX Control Test Container可以立即進行測試,在已提供的可插入OLE控制項列表中,Test Control就是我們生成的控制項名。如果想在其它環境下使用它,則必須先對Test.ocx文件進行注冊,具體做法是在命令行方式下鍵入命令:「regsvr32 …/Test.ocx」。此後,我們就可在任何支持ActiveX控制項的環境中使用它了。注意:.ocx文件應該隨時更新和注冊。

當然,這樣生成的控制項沒有什麼實質性的用處,若在任何一個包容器中測試它,則只可見一個矩形框和一個內切橢圓,除了縮放和位置移動功能外不能進行任何操作。

然而,我們希望開發出來的控制項就像一個通常的編輯環境一樣:用戶可以在窗口內進行文本的輸入和編輯,而且有工具條來支持各項操作。

1、為控制項添加工具條和子窗口

VC++的模板常常是很有用的工具,我們設計一個類CToolbar,為控制項類T添加工具條,顯示每個按鈕及提示信息。我們的控制項類CtestCtrl是從這個類派生出來的,從而可為控制項加上設計好了的工具條。

以下是實現工具條模板類的定義 (在Toolbar.h文件中) :

template

class CToolbar

{

public:

CToolbar();

void CreateToolbar(HWND hParent);// 創建工具條

void AddButtons();// 逐個加入按鈕

void DestroyToolbar();// 撤消工具條

LRESULT OnToolbarNeedText(WPARAM, LPNMHDR pnmh, BOOL&);

// 工具條上按鈕的提示信息

protected:

HWND m_hwndToolbar;// 工具條的窗口句柄

};

接著,要對TestCtl.h和TestCtl.cpp作相應的修改。在TestCtl.h中要先包含Toolbar.h文件,並將控制項類定義為:

class CTestCtrl : public COleControl, public CToolbar

然後,再加進消息映射宏:

BEGIN_TOOLBAR_MAP(CTestCtrl)

TOOLBAR_BUTTON(ID_New)

TOOLBAR_SEPARATOR()

TOOLBAR_BUTTON(ID_CUT)

......

TOOLBAR_SEPARATOR()

......

END_TOOLBAR_MAP()

以響應定製的工具條上的各個按鈕消息。上面的宏在Toolbar.h文件中被定義。於是,在CTestCtrl類的成員函數中就可以靈活使用CToolbar類的各項操作了。

另外,我們再為控制項設計一個可編輯的子窗口。這實現起來很方便,在控制項類定義中直接加入CEdit類的對象作為成員變數m_TestEdit即可。

要想真正生成我們自己的控制項窗口,則需重載COleControl::CreateControlWindow函數。控制項窗口被創建時,該函數被調用,函數中先調用基類同名函數,再依次調用CreateToolbar和CreateTestEdit 生成控制項中的工具條和子窗口。自然,我們不再需要系統預設調用的畫圖函數,將CTestCtrl::OnDraw 中畫矩形框和橢圓的部分去掉。CreateToolbar在工具條模板類中實現;CreateTestEdit 在控制項類中自定義,函數先計算控制項窗口的客戶區和工具條的窗口大小,得到子窗口的位置,使之填滿控制項中工具條以外的全部區域,然後調用m_TestEdit.Create函數,設置參數使子窗口具有用戶所希望的各項風格。

2、調整控制項窗口中各個對象的位置

工具條和子窗口已經在控制項中生成後,還有一項重要的工作就是當控制項位置移動或大小改變時,要相應地調整工具條和子窗口的位置和大校

COleControl類為我們提供了這樣的函數:

COleControl::OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip);

其中的參數給出了控制項的新位置。重載此函數,先按系統提供的功能自動調整工具條,調用:

::SendMessage(m_hwndToolbar, TB_AUTOSIZE, 0L, 0L)

然後,同創建時一樣計算控制項窗口的客戶區(參數lpRectPos已給出),調用GetWindowRect獲得工具條的窗口大校為使子窗口填滿控制項中工具條以外的全部區域,應先計算出相應的矩形位置並調用m_TestEdit.SetWindowPos來 實現子窗口的位置調整。為了美觀起見,也可在子窗口的四邊留出少許富餘。最後,調用基類的OnSetObjectRects函數。

3、實現對控制項內對象的控制

因為有了子窗口,實際上用戶的各項功能操作都是由子窗口來控制完成的。我們將焦點的控制權交給子窗口,使用戶能進行輸入和編輯操作,在CTestCtrl::OnSetFocus中調用m_TestEdit.SetFocus。同樣,當控制項對象捕獲到工具條上的按鈕被按下的消息時,要調用 m_TestEdit 的相應函數以執行用戶的命令。

工具條上提示信息的顯示也由控制項對象來控制。在CTestCtrl::OnNotify函數中加入如下代碼:

NMHDR *pNMHDR = (NMHDR *)lParam;

BOOL tmp;

if (pNMHDR->code == TTN_NEEDTEXT)

return OnToolbarNeedText(wParam, pNMHDR, tmp);

這樣,當滑鼠移動並停留在工具條的某個按鈕上時,控制項對象就會調用工具條模板類中的OnToolbarNeedText 函數以獲得相應的提示信息。

4、控制項窗口及內部對象的撤消

最後需要說明的是,如果我們在控制項中創建了新的工具條和子窗口,則也應該及時撤消控制項窗口及其內部對象。撤消控制項窗口,即是在 CTestEdit::OnDestroy函數中依次調用DestroyToolbar和 m_TestEdit.DestroyWindow 來清除工具條和子窗口。

遵循以上四個工作步驟就可以很好地創建一個帶有工具條和編輯子窗口的ActiveX控制項。子窗口可由用戶自己定義,象通常的應用程序那樣去實現各種各樣或簡單或復雜的功能。工具條的存在使用戶執行各項操作更加方便。此外,在控制項中加進其它各種所需的對象並進行控制也是可能的。

❹ Activex控制項是什麼它的作用是什麼

ActiveX是Microsoft對於一系列策略性面向對象程序技術和工具的稱呼,其中主要的技術是組件對象模型(COM)。

ActiveX 控制項是用於互聯網的很小的程序,有時稱為插件程序。它們會允許播放動畫,或幫助執行任務,如在 Microsoft Update 安裝安全更新,因此可以增強瀏覽體驗。

在創建包括ActiveX程序時,主要的工作就是組件,一個可以自足的在ActiveX網路(Windows,Mac,Linux)中任意運行的程序。這個組件就是ActiveX控制項。ActiveX是Microsoft為抗衡Sun Microsystems的JAVA技術而提出的,此控制項的功能和java applet功能類似。

(4)activex編程擴展閱讀:

控制項分類:

1、自動化伺服器

可以由其他應用程序編程驅動的組件。自動化伺服器至少包括一 個,也許是多個供其他應用程序生成和連接的基於IDispatch的介面。自動化伺服器可以含有也可以沒有用戶界面(UI),這取決於伺服器的特性和功能。

2、自動化控制器

那些使用和操縱自動化伺服器的應用程序。

3、控制項

ActiveX控制項等價於以前的OLE控制項或OCX。一個典型的控制項包括設計時和運 行時的用戶界面,唯一的IDispatch介面定義控制項的方法和屬性,唯一的 IConnectionPoint介面用於控制項可引發的事件。

4、文檔

ActiveX文檔,即以前所說的DocObject,表示一種不僅僅是簡單控制項或自動 化伺服器的對象。ActiveX文檔在結構上是對OLE鏈接和模型的擴展,並對其所在的 容器具有更多控制權。一個最顯著的變化是菜單的顯示方式。

5、容器

ActiveX容器是一個可以作為自動化伺服器、控制項和文檔宿主的應用程序。

❺ ActiveX腳本編程的實現方式

應用系統也需要實現一些介面,分別為:IActiveScriptSite和IActiveScriptSiteWindow(可選)。介面IActiveScriptSite是每一個支持腳本語言的應用系統所必須實現的介面,腳本引擎通過它來獲取其宿主程序的信息,特別是在解釋腳本語言中一些名字時更需要用到這些信息,IActiveScriptSite的介面定義如下:
class IActiveScriptSite : public IUnknown
{
public :
virtual HRESULT GetLCID( LCID *plcid) = 0;
virtual HRESULT GetItemInfo( LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown *ppiunkItem, ITypeInfo *ppti) = 0;
virtual HRESULT GetDocVersionString(BSTR *pbstrVersion) = 0;
virtual HRESULT OnScriptTerminate(const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo) = 0;
virtual HRESULT OnStateChange( SCRIPTSTATE ssScriptState) = 0;
virtual HRESULT OnScriptError( IActiveScriptError *pscripterror) = 0;
virtual HRESULT OnEnterScript( void) = 0;
virtual HRESULT OnLeaveScript( void) = 0;
};
在這些成員函數中,GetItemInfo是關鍵函數,因為腳本引擎管理了一個名字空間,腳本引擎在解釋執行過程中,如果需要某個名字的信息,則通過宿主程序的IActiveScriptSite::GetItemInfo函數獲取。所以,應用系統通過GetItemInfo成員函數把自己的一些對象暴露給腳本引擎,以便在腳本文件中引用。
IActiveScriptSiteWindow介面是一個可選的介面,如果在腳本文件中要用到用戶介面UI特性,則應用系統應該實現IActiveScriptSiteWindow介面,其定義很簡單,如下:
class IActiveScriptSiteWindow : public IUnknown
{
public :
virtual HRESULT GetWindow( HWND *phwnd ) = 0;
virtual HRESULT EnableModeless( BOOL fEnable ) = 0;
};
腳本引擎通過GetWindow成員函數獲取宿主窗口句柄,作為腳本中彈出窗口的父窗口。
除了應用系統需要實現上面兩個介面用作它與腳本引擎之間的通訊之外,腳本引擎也實現了一組介面用作兩者之間的通訊,這組介麵包括:IActiveScript、IActiveScriptParse和其它一些用於調試、狀態管理或者錯誤處理的介面,IActiveScript和IActiveScriptParse是必須實現的介面,以下是它們的定義:
class IActiveScript : public IUnknown
{
public:
virtual HRESULT SetScriptSite( IActiveScriptSite *pass) = 0;
virtual HRESULT GetScriptSite( REFIID riid, void **ppvObject) = 0;
virtual HRESULT SetScriptState( SCRIPTSTATE ss) = 0;
virtual HRESULT GetScriptState( SCRIPTSTATE *pssState) = 0;
virtual HRESULT Close( void) = 0;
virtual HRESULT AddNamedItem( LPCOLESTR pstrName, DWORD dwFlags) = 0;
virtual HRESULT AddTypeLib( REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags) = 0;
virtual HRESULT GetScriptDispatch( LPCOLESTR pstrItemName, IDispatch **ppdisp) = 0;
virtual HRESULT GetCurrentScriptThreadID( SCRIPTTHREADID *pstidThread) = 0;
virtual HRESULT GetScriptThreadID( DWORD dwWin32ThreadId,SCRIPTTHREADID *pstidThread) = 0;
virtual HRESULT GetScriptThreadState( SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState) = 0;
virtual HRESULT InterruptScriptThread( SCRIPTTHREADID stidThread,const EXCEPINFO *pexcepinfo, DWORD dwFlags) = 0;
virtual HRESULT Clone( IActiveScript **ppscript) = 0;
};
class IActiveScriptParse : public IUnknown
{
public:
virtual HRESULT InitNew( void) = 0;
virtual HRESULT AddScriptlet( LPCOLESTR pstrDefaultName,LPCOLESTR pstrCode, LPCOLESTR pstrItemName, LPCOLESTR pstrSubItemName, LPCOLESTR pstrEventName, LPCOLESTR pstrDelimiter, DWORD dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, BSTR *pbstrName, EXCEPINFO *pexcepinfo) = 0;
virtual HRESULT ParseScriptText( LPCOLESTR pstrCode, LPCOLESTR pstrItemName,IUnknown *punkContext, LPCOLESTR pstrDelimiter,DWORD dwSourceContextCookie, ULONG ulStartingLineNumber,DWORD dwFlags, VARIANT *pvarResult,EXCEPINFO *pexcepinfo) = 0;
};
應用系統通過IActiveScript介面控制腳本引擎的各種行為,也可以獲取引擎的各種狀態。通常,應用系統首先調用IActiveScript::SetScriptSite成員函數把自身實現的IActiveScriptSite介面傳遞給引擎,以後引擎就通過該介面與應用系統通訊。而應用系統也可以通過IActiveScript的其它成員函數獲取或者設置引擎的運行狀態。介面IActiveScriptParse用於對腳本代碼的操作,應用系統利用IActiveScriptParse介面裝入腳本代碼。
在介紹了應用系統和腳本引擎所實現的一些關鍵介面之後,我們再進一步看看應用系統和腳本引擎的協作過程:
(1)創建必要的受控對象,這些受控對象是指將要在腳本文件中引用到的Automation對象,通常是應用系統的文檔對象,也可以是某些ActiveX控制;
(2)創建引擎對象,不同的腳本語言使用不同的引擎對象,通常我們使用VBScript引擎或者JavaScript引擎,創建得到的介面指針是應用系統控制引擎的惟一途徑;
(3)裝入腳本文件,調用引擎的IActiveScriptParse介面的ParseScriptText成員函數把腳本代碼裝入到引擎中,注意ParseScriptText成員函數只接收UNICODE字元串,如果程序中用到了ANSI字元串,則需要進行轉換才能裝入到引擎中;
(4)加入名字項,凡是應用系統中要暴露給腳本文件的所有對象都需要加入到引擎的名字空間中,可以通過調用IActiveScript介面的AddNamedItem成員函數來完成;
(5)啟動引擎,以便運行腳本,直接調用IActiveScript::SetScriptState成員函數使其進入連接狀態(運行狀態)即可;
(6)引擎在執行腳本時,首先處理其名字空間中的名字項,調用應用系統IActiveScriptSite介面的GetItemInfo成員函數獲取每一個名字所對應的受控對象的信息,主要是COM介面;如果在腳本中有事件控制函數的話,則還要獲取受控對象的類型信息;
(7)在腳本執行過程中,當特定的事件發生時,引擎中的事件控制函數就要被調用;
(8)在腳本執行過程中,有可能會調用到受控對象的屬性和方法,則引擎會通過它所獲取的對象介面調用IDispatch::Invoke成員函數;
如果應用系統希望終止引擎的執行過程,可以調用IActiveScript::SetScriptState成員函數使其進入非運行狀態即可。
以上的步驟基本上反映了應用系統和引擎之間的協作過程。在實際使用過程中,可以根據情況的不同靈活應用。

❻ activeX的控制項是用什麼編程語言開發的

可以用多種腳本語言開發,比如VB、JS等。

❼ ActiveX是什麼~~~有什麼功能呢

ActiveX 是一個打開集成平台提供開發、 用戶和 Web 發生器快速簡便快捷地為 Internet 和 Intranet 創建程序集成和內容。 使用 ActiveX, 可輕松插入到 Web頁, 多媒體效果、 互動式對象, 以及復雜程序創建用戶體驗相當的高質量多媒體 CD-ROM 。

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

ActiveX的內容
[編輯本段]
ActiveX 控制項
以前稱為 OLE 控制項或 OCX 控制項, ActiveX, 是組件 (或對象) 打包, 別人編程功能, 以便您可以重用 Web頁或其他程序中插入。 例如, 隨 InternetExplorer 一起提供 ActiveX 控制項可用於增強 Web頁具有復雜格式功能和動畫。
ActiveX 控制項通過 Java 程序和 Netscape 插件關鍵優點是, 還可以用許多編程語言, 包括所有 Microsoft 編程和資料庫語言編寫程序中使用 ActiveX 控制項。

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

ActiveX 腳本
ActiveX 腳本支持最常用腳本語言, 包括 Microsoft VisualBasic 腳本和 JavaScript。 ActiveX 腳本可用於集成行為若干 ActiveX 控制項或 Java 程序從 Web 瀏覽器或伺服器, 擴展其功能。

ActiveX的特點
[編輯本段]

在網際網路上,ActiveX插件軟體的特點是:一般軟體需要用戶單獨下載然後執行安裝,而ActiveX插件是當用戶瀏覽到特定的網頁時,IE瀏覽器即可自動下載並提示用戶安裝。 ActiveX插件安裝的一個前提是必須經過用戶的同意及確認。

ActiveX插件技術是國際上通用的基於Windows平台的軟體技術,除了網路實名插件之外,許多軟體均採用此種方式開發,例如Flash動畫播放插件、Microsoft MediaPlayer插件、CNNIC通用網址插件等。

相關內容
[編輯本段]

1.瀏覽器如何保證ActiveX插件的安全性?
當通過Internet發行軟體時,軟體的安全性是一個非常引人注意的問題,IE瀏覽器通過以下的方式來保證ActiveX插件的安全:
ActiveX使用了兩個補充性的策略:安全級別和證明,來追求進一步的軟體安全性;
Microsoft提供了一套工具,可以用它來增加ActiveX對象的安全性;
通過Microsoft的驗證代碼工具,可以對ActiveX控制項進行簽名,這告訴用戶你的確是控制項的作者而且沒有他人篡改過這個控制項;
為了使用驗證代碼工具對組件進行簽名,必須從證書授權機構獲得一個數字證書;證書包含表明特定軟體程序是正版的信息,這確保了其他程序不能再使用原程序的標識。證書還記錄了頒發日期。當您試圖下載軟體時,Internet Explorer 會驗證證書中的信息,以及當前日期是否在證書的截止日期之前。如果在下載時該信息不是最新的和有效的,Internet Explorer 將顯示一個警告;
在IE默認的安全級別中,ActiveX控制項安裝之前,用戶可以根據自己對軟體發行商和軟體本身的信任程度,選擇決定是否繼續安裝和運行此軟體。
在最新的IE 7中,安全性有進一步的提高。
2.關於三個概念:ActiveX、OLE和COM
熟悉面向對象編程和網路編程的人一定對ActiveX、OLE和COM/DCOM這些概念不會陌生,但是它們之間究竟是什麼樣的關系,對許多們還是比較模糊的。在具體介紹它們的關系之間,我們還是先明確組件(Component)和對象(Object)之間的區別。組件是一個可重用的模塊,它是由一組處理過程、數據封裝和用戶介面組成的業務對象(Rules Object)。組件看起來像對象,但不符合對象的學術定義。它們的主要區別是:1)組件可以在另一個稱為容器(有時也稱為承載者或宿主)的應用程序中使用,也可以作為獨立過程使用;2)組件可以由一個類構成,也可以由多個類組成,或者是一個完整的應用程序;3)組件為模塊重用,而對象為代碼重用。現在,比較流行的組件模型有COM(Component Objiect Mole,對象組件模型)/DCOM(Distributed COM,分布式對象組件模型)和CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構)。到這里,已經出現了與本文相關的主題COM,而CORBA與本文無關,就不作介紹。之所以從組件與對象的區別說起,是想讓大家明確COM和CORBA是處在整個體系結構的最底層,如果暫時對此還不能理解,不妨繼續往下看,最後在回過頭看一看就自然明白了。現在開始闡述ActiveX、OLE和COM的關系。首先,讓大家有一個總體的概念,從時間的角度講,OLE是最早出現的,然後是COM和ActiveX;從體系結構角度講,OLE和ActiveX是建立在COM之上的,所以COM是基礎;單從名稱角度講,OLE、ActiveX是兩個商標名稱,而COM則是一個純技術名詞,這也是大家更多的聽說ActiveX和OLE的原因。既然OLE是最早出現的,那麼就從OLE說起,自從Windows操作系統流行以來,「剪貼板」(Clipboard)首先解決了不同程序間的通信問題(由剪貼板作為數據交換中心,進行復制、粘貼的操作),但是剪貼板傳遞的都是「死」數據,應用程序開發者得自行編寫、解析數據格式的代碼,於是動態數據交換(Dynamic Data Exchange,DDE)的通信協定應運而生,它可以讓應用程序之間自動獲取彼此的最新數據,但是,解決彼此之間的「數據格式」轉換仍然是程序員沉重的負擔。對象的鏈接與嵌入(Object Linking and Embedded,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和Windows
NT中用的是新API,多數是作為COM對象來定義的。可見,COM雖然起源於復合文檔,但卻可有效地適用於許多軟體問題,它畢竟是處在底層的基礎技術。用一句話來說,COM是獨立於語言的組件體系結構,可以讓組件間相互通信。隨著計算機網路的發展,COM進一步發展為分布式組件對象模型,這就是DCOM,它類似於CORBA的ORB,本文對此將不再做進一步的闡述。通過上面的講述相信大家一定對ActiveX、OLE和COM/DCOM的關系有了一個清楚的了解。

備注
[編輯本段]

在編輯過程中,採用了部分機器翻譯的內容。

特注
[編輯本段]

2008年中 ActiveX為微軟十大垃圾軟體榜首..

❽ ActiveX腳本編程的術語簡介

ActiveX scripting(ActiveX腳本編程)
一種使用腳本語言來驅動ActiveX組件的行為。

❾ ActiveX腳本編程的介紹

ActiveX Scripting 技術是Microsoft ActiveX 技術的一個組成部分,它的主要目的是使應用程序在不被修改的情況下,可被各種腳本語言所控制。比如大家比較熟悉的Microsoft Office中的Word字處理軟體,它提供了方便的BASIC語言的可編程特性,用戶可以通過編寫BASIC語言實現較為復雜的功能擴充。

❿ 計算機中Activex是什麼意思

ActiveX 是一個開放的集成平台,為開發人員、 用戶和 Web生產商提供了一個快速而簡便的在 Internet 和 Intranet 創建程序集成和內容的方法。 使用 ActiveX, 可輕松方便的在 Web頁中插入 多媒體效果、 互動式對象、以及復雜程序,創建用戶體驗相當的高質量多媒體 CD-ROM 。

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

ActiveX 控制項
以前稱為 OLE 控制項或 OCX 控制項. 是組件 (或對象) 打包,別人編程功能. 以便您可以重用 Web頁或其他程序中插入。 例如, 隨 InternetExplorer 一起提供 ActiveX 控制項可用於增強 Web頁具有復雜格式功能和動畫。 ActiveX 控制項結合了Java 程序和 Netscape 插件優點,還可以用許多編程語言, 包括所有 Microsoft 編程和在資料庫語言編寫程序中使用 ActiveX 控制項。
ActiveX 文檔
用一個 ActiveX - 識別 Web 瀏覽器如 InternetExplorer, 瀏覽時 ActiveX 文檔使您能夠使用自己的工具欄和菜單可打開程序。 這意味著您可以通過使用 ActiveX - 識別 Web 瀏覽器打開非HTML 文件, 如 MicrosoftExcel 或 MicrosoftWord 文件。
ActiveX 腳本
ActiveX 腳本支持最常用腳本語言, 包括 Microsoft VisualBasic 腳本和 JavaScript。 ActiveX 腳本可用於集成行為若干 ActiveX 控制項或 Java 程序從 Web 瀏覽器或伺服器, 擴展其功能。

ActiveX的特點
在網際網路上,ActiveX插件軟體的特點是:一般軟體需要用戶單獨下載然後執行安裝,而ActiveX插件是當用戶瀏覽到特定的網頁時,IE瀏覽器即可自動下載並提示用戶安裝。 ActiveX插件安裝的一個前提是必須經過用戶的同意及確認。 ActiveX插件技術是國際上通用的基於Windows平台的軟體技術,除了網路實名插件之外,許多軟體均採用此種方式開發,例如Flash動畫播放插件、Microsoft MediaPlayer插件、CNNIC通用網址插件等。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829