• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

        注冊(cè)ActiveX控件的幾種辦法

        注冊(cè)ActiveX控件的幾種辦法

        更新時(shí)間:2022-05-06 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        文/黃昱

          使用ActiveX控件可快速實(shí)現(xiàn)小型的組件重用、代碼共享,從而提高編程效率,降低開發(fā)成本。但是ActiveX控件對(duì)于最終用戶并不能直接使用,因?yàn)锳ctiveX控件必須先在Windows中注冊(cè)。注冊(cè)ActiveX控件一般來說有六種途徑,它們有各自的優(yōu)點(diǎn),運(yùn)用范圍也不同。

          Regsvr32.exe注冊(cè)

          
          Regsvr32.exe位于Windows目錄的system子目錄下。點(diǎn)擊Windows的“開始→運(yùn)行”菜單,在對(duì)話框中輸入以下命令:

          regsvr32 netshare.ocx &&注冊(cè)netshare.ocx控件

          regsvr32 /u netshare.ocx &&解除netshare.ocx控件的注冊(cè)

          如果netshare.ocx文件不在system目錄時(shí),還必須在文件名前加上完整的路徑。除了regsvr32應(yīng)用程序之外,Microsoft在它的Web站點(diǎn)上還提供了一個(gè)稱為regclean.exe的程序,可以檢查注冊(cè)表并去掉丟失的組件在注冊(cè)表中的條目。regclean.exe除了可以刪除“懸掛”的條目,它還提供一個(gè)“undo”文件幫助恢復(fù)錯(cuò)誤的刪除。

          臥龍傳說提醒:用regsvr32.exe注冊(cè)ActiveX控件雖然簡(jiǎn)單,但需要用戶手工進(jìn)行注冊(cè),在不用時(shí)還需手工解除注冊(cè)。

          VFP環(huán)境注冊(cè)

          在我們進(jìn)行程序設(shè)計(jì)時(shí),VFP本身提供一個(gè)注冊(cè)ActiveX控件的方法。

          進(jìn)入VFP環(huán)境,選擇“工具→選項(xiàng)”菜單,點(diǎn)擊“控件”頁(yè),選中“ActiveX控件”單選按鈕,在列表框里顯示所有已經(jīng)注冊(cè)的ActiveX控件,這時(shí),點(diǎn)擊右邊的“添加”按鈕,選擇需要注冊(cè)的ActiveX控件文件,“確定”后完成注冊(cè)。也可以在表單設(shè)計(jì)器的表單控件工具欄里拖動(dòng)“OLE”按鈕到表單,在彈出的選擇框里選中“插入控件”單選鈕,同樣點(diǎn)擊右邊的“添加控件”按鈕,來完成新控件的注冊(cè)。

          臥龍傳說提醒:本方法僅適合程序員在設(shè)計(jì)程序過程中手工進(jìn)行,對(duì)用戶而言,并沒有實(shí)現(xiàn)在本地機(jī)上自動(dòng)注冊(cè)。

          安裝程序注冊(cè)

          大型應(yīng)用軟件一般都有一個(gè)安裝程序,在安裝程序中解決ActiveX控件的注冊(cè)是較為理想的一種方案。

          在用戶執(zhí)行安裝程序時(shí),這些ActiveX控件將自動(dòng)在用戶機(jī)器上安裝并注冊(cè)。

          VFP7.0光盤所帶的InstallShield是目前較為流行的制作安裝程序的工具,使用它可以制作出專業(yè)級(jí)的Setup安裝程序,還可以注冊(cè)應(yīng)用程序使用到的ActiveX控件。而且,在以后使用控制面板的“添加/刪除程序”卸載該軟件時(shí),安裝程序會(huì)自動(dòng)注銷掉以前注冊(cè)的ActiveX控件。

          加入代碼注冊(cè)

          首先,定義一個(gè)注冊(cè)控件的函數(shù):

          Function MyRegsvr ( lpcRegFilename, lplIsreg )

          If File(lpcRegFilename)

          lpcRegFilename = iif(llisreg, lpcRegFilename, [ /u ] + lpcRegFilename)

          Run /n regsvr32 &&lpcRegFilename

          Endif

          Return

          Endfunc

          然后就可以通過以下語句來調(diào)用該函數(shù),并完成ActiveX控件的注冊(cè)了(臥龍傳說提醒:一定要注意控件文件的路徑哦)。

          = MyRegsvr( "netshare.ocx", .T.) &&注冊(cè)netshare.ocx控件

          = MyRegsvr( "netshare.ocx", .F.) &&解除netshare.ocx控件的注冊(cè)

          注冊(cè)函數(shù)注冊(cè)

          上面提到運(yùn)行regsvr32.exe應(yīng)用程序?qū)棾鲎?cè)是否成功的對(duì)話框,注意看內(nèi)容“DllRegisterServer in netshare.ocx succeeded”或“UnDllregisterServer...”,其實(shí),通常每個(gè)可用的ActiveX控件都有DllRegisterServer、UnDllregisterServer這兩個(gè)自注冊(cè)函數(shù)包含在其中,我們可以用定義API函數(shù)的方法(Declare <函數(shù)名> in <文件名> ... )來定義它,然后直接使用該函數(shù)來進(jìn)行注冊(cè)和反注冊(cè)。

          同樣,我們先自定義一個(gè)注冊(cè)函數(shù)(臥龍傳說提醒:請(qǐng)注意DllRegisterServer、UnDllregisterServer的大小寫):

          Function DllRegister (lpLibFileName,isReg)

          isReg = iif(type("isReg")="U", .T., isReg)

          lpProcName = iif(isReg, "DllRegisterServer", "DllUnregisterServer" )

          Declare INTEGER (lpProcName) in (lpLibFileName)

          return &&lpProcName.()

          Endfunc

          然后,就可以通過該函數(shù)來完成ActiveX控件的注冊(cè)了。

          = DllRegister( "netshare.ocx", .T.) &&注冊(cè),返回0表示成功

          = DllRegister( "netshare.ocx", .F.) &&注銷,返回0表示成功

          Clear Dlls

          試試,是不是沒有了彈出框的煩惱!

          臥龍傳說提醒:該方法沒有對(duì)ActiveX控件文件的驗(yàn)證,假如該控件沒有有效的DllRegisterServer功能(即不具有自注冊(cè)功能),也就找不到以上的兩個(gè)API函數(shù),照樣會(huì)有錯(cuò)誤信息彈出。

          API函數(shù)注冊(cè)

          此方法的設(shè)計(jì)思路是:先將ActiveX控件載入內(nèi)存,然后驗(yàn)證其有效性,最后直接在內(nèi)存地址中執(zhí)行其注冊(cè)函數(shù)(DllRegisterServer、UnDllregisterServer)。其編程方法是:

          1、使用Windows API函數(shù)LoadLibrary載入ActiveX控件;

          2、使用GetProcAddress函數(shù)獲取ActiveX控件中注冊(cè)函數(shù)DllRegisterServer(注銷函數(shù)為DllUnregisterserver)指針;

          3、使用CallWindowProc函數(shù)執(zhí)行已載入內(nèi)存的ActiveX控件注冊(cè)函數(shù)(DllRegisterServer、UnDllregisterServer)。

          上面所述的ActiveX控件注冊(cè)方法各有特點(diǎn)。經(jīng)實(shí)際使用,效果良好。您可根據(jù)實(shí)際情況靈活選用。

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国产免费131美女视频| 无限动漫网在线观看免费| 亚洲国产成人爱av在线播放| 亚洲天堂电影在线观看| 一级毛片**不卡免费播| 亚洲人成亚洲精品| 99免费视频观看| 亚洲成电影在线观看青青| 精品成在人线AV无码免费看 | 亚洲av日韩专区在线观看| 四虎影视大全免费入口| 亚洲AV成人精品日韩一区| 免费大黄网站在线看| 国产高清对白在线观看免费91| 亚洲自偷自偷偷色无码中文| 最新国产乱人伦偷精品免费网站| 国产V亚洲V天堂无码| 久久久久久精品免费免费自慰| 精品国产日韩久久亚洲| 在线看片无码永久免费aⅴ| 永久免费精品影视网站| 亚洲成a人片77777kkkk| 免费观看激色视频网站bd| 亚洲午夜理论片在线观看| 亚洲av午夜成人片精品电影 | 成人人免费夜夜视频观看| 国产大陆亚洲精品国产| 国产亚洲精品精华液| 日韩在线播放全免费| 色综合久久精品亚洲国产| 亚洲日本一区二区三区在线不卡| 九九精品成人免费国产片| 67194在线午夜亚洲| 亚洲七七久久精品中文国产| 午夜无码A级毛片免费视频 | 亚洲AV综合色区无码另类小说| 97在线视频免费播放| 亚洲AV日韩AV一区二区三曲| 国产AV无码专区亚洲AV毛网站| 中文字幕无码不卡免费视频| 一道本不卡免费视频|