ActiveX控件
ActiveX是Microsoft對于一系列策略性
面向?qū)ο蟪绦?/a>技術(shù)和工具的稱呼,其中主要的技術(shù)是組件對象模型(COM)。在有目錄和其它支持的網(wǎng)絡(luò)中,COM變成了分布式COM(DCOM)。在創(chuàng)建包括ActiveX程序時,主要的工作就是組件,一個可以自足的在ActiveX網(wǎng)絡(luò)(現(xiàn)在的網(wǎng)絡(luò)主要包括Windows和Mac)中任意運行的程序。這個組件就是ActiveX控件。ActiveX是Microsoft為抗衡Sun Microsystems的
JAVA技術(shù)而提出的,此控件的功能和java applet功能類似。
如果您使用的是Windows
操作系統(tǒng),您或許會注意到一些以O(shè)CX結(jié)尾的文件。
OCX代表“對象鏈接與嵌入控件”(OLE),這個技術(shù)是Microsoft提出的程序技術(shù),用于處理桌面文件的混合使用?,F(xiàn)在COM的概念已經(jīng)取代OLE的一部分,Microsoft也使用ActiveX控件代表組件對象。
組件的一大優(yōu)點就是可以被大多數(shù)
應(yīng)用程序再使用(這些應(yīng)用程序稱為組件容器)。一個
COM組件(ActiveX控件)可由不同語言的開發(fā)工具開發(fā),包括C++和Visual Basic或PowerBuilder,甚至一些技術(shù)性語言如VBScript。
目前,ActiveX控件在Windows 95/NT和Macintosh中運行,Microsoft還準備支持UNIX的ActiveX控件。
ActiveX控件分類
ActiveX組件包括如下幾類:
1.自動化服務(wù)器:可以由其他應(yīng)用程序編程驅(qū)動的組件。自動化服務(wù)器至少包括一 個,也許是多個供其他應(yīng)用程序生成和連接的基于IDispatch的接口。自動化服務(wù)器 可以含有也可以沒有用戶界面(UI),這取決于服務(wù)器的特性和功能。
2.自動化控制器:那些使用和操縱自動化服務(wù)器的應(yīng)用程序。
3.控件:ActiveX控件等價于以前的OLE控件或OCX。一個典型的控件包括設(shè)計時和運 行時的用戶界面,唯一的IDispatch接口定義控件的方法和屬性,唯一的 IConnectionPoint接口用于控件可引發(fā)的事件。
4.文檔:
ActiveX文檔,即以前所說的DocObject,表示一種不僅僅是簡單控件或自動 化服務(wù)器的對象。ActiveX文檔在結(jié)構(gòu)上是對OLE鏈接和模型的擴展,并對其所在的 容器具有更多控制權(quán)。一個最顯著的變化是菜單的顯示方式。一個典型的OLE文檔的 菜單會與容器菜單合并成一個新的集合,而ActiveX文檔將替換整個菜單系統(tǒng),只表 現(xiàn)出文檔的特性而不是文檔與容器共同的特性。
5.容器:ActiveX容器是一個可以作為自動化服務(wù)器、控件和文檔宿主的應(yīng)用程序
ActiveX控件的廣泛應(yīng)用
ActiveX 控件是一種可重用的
軟件組件,通過使用 ActiveX控件,可以很快地在網(wǎng)址、臺式應(yīng)用程序、以及開發(fā)工具中加入特殊的功能。如,StockTicker控件可以用來在網(wǎng)頁上即時地加入活動信息,動畫控件可用來向網(wǎng)頁中加入動畫特性?,F(xiàn)在,已有1000多個商用的ActiveX控件,開發(fā)控件可以使用各種編程語言,如C,C++,下一代的Microsoft Visual Basic®,以及
微軟公司的 Visual Java開發(fā)環(huán)境Microsoft Visual J++?。 ActiveX控件一旦被開發(fā)出來,設(shè)計 和開發(fā)人員就可以把它當作預(yù)裝配組件,用于開發(fā)客戶程序。以此種方式使用 ActiveX控件,使用者無需知道這些組件是如何開發(fā)的,在很多情況下,甚至不需要自己編程,就可以完成網(wǎng)頁或應(yīng)用程序的設(shè)計。
我登陸一個網(wǎng)站需要安裝ActiveX控件,可是安過之后第二次再登錄的時候還需要安裝,就這樣每次登陸都得重新安裝ActiveX控件,很是麻煩,請問:有什么好的辦法來解決?
應(yīng)該是不小心使用了IE8的 Inprivate 瀏覽器,所以每一次使用的IE的記錄都會被自動刪除,包括你安裝的控件,所以你只要把inprivate篩選關(guān)了就行了!方法如下:
默認情況下,InPrivate 篩選將分析您所訪問的網(wǎng)站和這些網(wǎng)站所使用的內(nèi)容提供商,但不會自動阻止它們。您可以選擇允許或阻止由 InPrivate 篩選標識為接收瀏覽信息的任何內(nèi)容提供商。您也可以讓 InPrivate 篩選自動阻止任何內(nèi)容提供商,或者您可以關(guān)閉 InPrivate 篩選。 首次打開 InPrivate 篩選,請執(zhí)行以下步驟: 在 Internet Explorer 中,單擊“安全”按鈕,然后單擊“InPrivate 篩選”。 請執(zhí)行下列操作之一: 單擊“為我阻止”自動阻止網(wǎng)站。 單擊“選擇接受我信息的提供程序”,以選擇要阻止或允許的內(nèi)容。 單擊“確定”。 如果已經(jīng)打開 InPrivate 篩選,請執(zhí)行以下步驟: 在 Internet Explorer 中,單擊“安全”按鈕,然后單擊“InPrivate 篩選”。 請執(zhí)行下列操作之一: 若要自動阻止網(wǎng)站,請單擊“自動阻止”。 要手動阻止網(wǎng)站,單擊“選擇要阻止或允許的內(nèi)容”。 要關(guān)閉 InPrivate 篩選,單擊“關(guān)閉”。 單擊“確定”。 如何手動選擇要阻止或允許的內(nèi)容? 要手動阻止或允許內(nèi)容提供商或第三方網(wǎng)站,可以借助這些網(wǎng)站了解您訪問過哪些網(wǎng)站,請執(zhí)行以下步驟: 在 Internet Explorer 中,單擊“安全”按鈕,然后單擊“InPrivate 篩選設(shè)置”。 單擊“選擇要阻止或允許的內(nèi)容”,單擊一個或多個網(wǎng)站,然后單擊“允許”或“阻止”。 完成后,單擊“確定”。
更多的時候,我都在使用COM組件來擴展ASP的功能。準確地說,是服務(wù)端運行的Activex Dll組件。使用Server.CreateObject(“工程名.類名”)即可完成對組件的調(diào)用。這種方式問題很少,只要組件中以PUBLIC對外暴露方法既可。但是,有時候我們必須使用ACTIVEX 控件(*.OCX)嵌入到網(wǎng)頁中執(zhí)行來獲取客戶端的信息。這就有了許許多多的一些問題。
'注意!不要刪除或修改下列被注釋的行!
'MappingInfo=txtinfo,txtinfo,-1,Text
Public Property Get GetInfo() As String
GetInfo = txtinfo.Text
End Property
Public Property Let GetInfo(ByVal New_GetInfo As String)
txtinfo.Text() = New_GetInfo
PropertyChanged "GetInfo"
End Property
'從存貯器中加載屬性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
txtinfo.Text = PropBag.ReadProperty("GetInfo", "Text1")
End Sub
'將屬性值寫到存儲器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("GetInfo", txtinfo.Text, "Text1")
End Sub
OK,好了,我們編譯成fOcx.ocx文件,然后F5直接運行,VB會打開一個測試頁。如下:
E:\Program Files\Microsoft Visual Studio\VB98\UC1.html
同時,打開你的IE瀏覽器,看到了吧,你做的控件出現(xiàn)在了這個測試頁中。
你可以打開測試頁,可以看到ClsID,比如:890D1028-298B-45CF-9A64-6ED5A5BACBC9
因為VB編譯的時候已經(jīng)完成注冊.所以無法模擬客戶端沒有安裝該控件時出現(xiàn)的提示.
我們繼續(xù)使用regsvr32 F:\csdn_vb\com+_activeX\sample1\fOcx.ocx –u卸載
或者
打開注冊表,在HKEY_CLASSES_ROOT\CLSID下面找到
890D1028-298B-45CF-9A64-6ED5A5BACBC9項,刪除之,當然這種方式還有項存在而沒有刪除干凈.
此時瀏覽
http://yang/uc1.htm,由于IE中ActiveX設(shè)置為啟動,所以,控件會顯示出來。
下載后的ocx到哪里去了???
打開該目錄(可能有所不同)E:\WINDOWS.0\Downloaded Program Files,看到了吧,fOcx.UC1文件在這個目錄下.
原理:客戶端下載該控件后,自動注冊,然后放在上述這個目錄下.這時我們可以打開注冊表看看CLSID,呵呵,還是以前的那個.
我們可以右鍵看看fOcx.UC1的屬性,看看相關(guān)內(nèi)容,這里顯示了該OCX所依賴的所有文件.所以,你的OCX盡量減少使用高級控件或者第三方的控件,否則,下載就有些問題了.
如果IE中關(guān)于ActiveX的選項設(shè)為禁用,那么瀏覽器就會出現(xiàn)對話框”當前安全設(shè)置禁止運行該頁中的ActiveX控件.因此可能無法正確顯示該頁”,這個就需要其他的方式來處理了。
一般用戶默認的都是禁用ActiveX選項,所以讓用戶自己設(shè)置不太合適。
我在網(wǎng)上銀行買東西,準備付款的時候提醒說ActiveX控件不能下載,說安全設(shè)置不允許使用計算機上亦安裝的Activex控件,我都已經(jīng)更改過設(shè)置了,還是不行,怎么辦???
右鍵點擊IE圖標,屬性,安全,受信任的站點,自定義級別,重置為:安全級—低,點擊重置,確定;再點擊站點,將網(wǎng)上銀行的那個站點地址添加進去確定就OK了,然后再買就可以無視ActiveX控件不能下了,切記這招只能用于絕對安全的站點,不要隨便用!!!!!
ActiveX Manager 是一個管理 ActiveX 控件的簡易程序。它可以注冊及反注冊 ocx、dll控件,并且可以查看它的相關(guān)信息。你也可以在資源管理器中的相應(yīng)文件上單擊鼠標右鍵,選擇注冊或反注冊控件。它可比 REGSVR32.EXE 文件使用命令行注冊控件方便多了。