當(dāng)前安全設(shè)置禁止運(yùn)行該頁(yè)中的ActiveX控件因此該頁(yè)可能無法正常.

更新時(shí)間:2016-03-17本文內(nèi)容轉(zhuǎn)載自互聯(lián)網(wǎng)
那不是ie的問題 是ie的安全功能之一 。你進(jìn)行如下操作可以看到 activex的設(shè)置處打開ie----》工具------》internet選項(xiàng)----》安全----》自定義級(jí)別,在這里是設(shè)置的。你把禁用的選擇起用就可以 但是電腦的安全性可能會(huì)下降A(chǔ)ctiveX控件運(yùn)行在客戶端。我們可以獲得客戶端的一些信息,如IC卡的信息,客戶端的驗(yàn)證等等。但是ActiveX控件也有許多缺點(diǎn):客戶端的部署很困難,如客戶端不能正確下載,下載了以后不能正確執(zhí)行,下載的時(shí)候需要設(shè)置IE的安全級(jí)別等等。更多的時(shí)候,我都在使用COM組件來擴(kuò)展ASP的功能。準(zhǔn)確地說,是服務(wù)端運(yùn)行的Activex Dll組件。使用Server.CreateObject“工程名.類名”即可完成對(duì)組件的調(diào)用。這種方式問題很少,只要組件中以PUBLIC對(duì)外暴露方法既可。但是,有時(shí)候我們必須使用ACTIVEX 控件*.OCX嵌入到網(wǎng)頁(yè)中執(zhí)行來獲取客戶端的信息。這就有了許許多多的一些問題。這是我們需要解決的N個(gè)問題從簡(jiǎn)單到難1. 如何從服務(wù)端獲取數(shù)據(jù),傳遞到ActiveX控件中。1 初始化時(shí)使用參數(shù)綁定2 運(yùn)行時(shí)得到數(shù)據(jù)2. ActiveX控件得到客戶端的信息,如何傳遞到服務(wù)端。3. 安全性1 數(shù)字簽名2 使用IOBJSAFE接口好了,我們開始實(shí)例學(xué)習(xí)。這個(gè)功能演示了如何制作一個(gè)簡(jiǎn)單的控件,并嵌入網(wǎng)頁(yè)中執(zhí)行。工作環(huán)境:WINXP+VB6+IE6我的IE安全設(shè)置為安全級(jí)別-中。所有的Activex選項(xiàng)設(shè)為啟用。打開vb6,新建ActiveX控件工程。工程名:fOcx,用戶控件名:UC1為了方便,我們使用ActiveX控件接口向?qū)?hellip;,菜單->外接程序->外接程序管理器->VB 6 ActiveX控件接口向?qū)?。確定即可。打開ActiveX控件接口向?qū)?,下一步,?duì)于可用名稱和選定名稱我們默認(rèn)下一步,新建自定義成員,GetInfo類型:屬性,下一步,共有方法中選擇我們剛才添加的GetInfo,映射到控件選擇TxtInfo,成員選擇Text,下一步直到完成。代碼窗口中會(huì)生成一些我們不需要的,刪除,剩下的代碼如下:Option Explicit‘注意!不要?jiǎng)h除或修改下列被注釋的行!‘MappingInfo=txtinfo,txtinfo,-1,TextPublic Property Get GetInfo As StringGetInfo = txtinfo.TextEnd PropertyPublic Property Let GetInfoByVal New_GetInfo As Stringtxtinfo.Text = New_GetInfoPropertyChanged "GetInfo"End Property‘從存貯器中加載屬性值Private Sub UserControl_ReadPropertiesPropBag As PropertyBagtxtinfo.Text = PropBag.ReadProperty"GetInfo", "Text1"End Sub‘將屬性值寫到存儲(chǔ)器Private Sub UserControl_WritePropertiesPropBag As PropertyBagCall PropBag.WriteProperty"GetInfo", txtinfo.Text, "Text1"End SubOK,好了,我們編譯成fOcx.ocx文件,然后F5直接運(yùn)行,VB會(huì)打開一個(gè)測(cè)試頁(yè)。如下:E:Program FilesMicrosoft Visual StudioVB98UC1.html同時(shí),打開你的IE瀏覽器,看到了吧,你做的控件出現(xiàn)在了這個(gè)測(cè)試頁(yè)中。你可以打開測(cè)試頁(yè),可以看到ClsID,比如:890D1028-298B-45CF-9A64-6ED5A5BACBC9因?yàn)閂B編譯的時(shí)候已經(jīng)完成注冊(cè).所以無法模擬客戶端沒有安裝該控件時(shí)出現(xiàn)的提示.我們繼續(xù)使用regsvr32 F:csdn_vbcom+_activeXsample1fOcx.ocx –u卸載或者打開注冊(cè)表,在HKEY_CLASSES_ROOTCLSID下面找到890D1028-298B-45CF-9A64-6ED5A5BACBC9項(xiàng),刪除之,當(dāng)然這種方式還有項(xiàng)存在而沒有刪除干凈.此時(shí)瀏覽http://yang/uc1.htm,由于IE中ActiveX設(shè)置為啟動(dòng),所以,控件會(huì)顯示出來。下載后的ocx到哪里去了???打開該目錄可能有所不同E:WINDOWS.0Downloaded Program Files,看到了吧,fOcx.UC1文件在這個(gè)目錄下.原理:客戶端下載該控件后,自動(dòng)注冊(cè),然后放在上述這個(gè)目錄下.這時(shí)我們可以打開注冊(cè)表看看CLSID,呵呵,還是以前的那個(gè).我們可以右鍵看看fOcx.UC1的屬性,看看相關(guān)內(nèi)容,這里顯示了該OCX所依賴的所有文件.所以,你的OCX盡量減少使用高級(jí)控件或者第三方的控件,否則,下載就有些問題了.如果IE中關(guān)于ActiveX的選項(xiàng)設(shè)為禁用,那么瀏覽器就會(huì)出現(xiàn)對(duì)話框”當(dāng)前安全設(shè)置禁止運(yùn)行該頁(yè)中的ActiveX控件.因此可能無法正確顯示該頁(yè)”,這個(gè)就需要其他的方式來處理了。一般用戶默認(rèn)的都是禁用ActiveX選項(xiàng),所以讓用戶自己設(shè)置不太合適。
有用 0 無用 0 我要提問