日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

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

注冊ActiveX控件的幾種辦法

注冊ActiveX控件的幾種辦法

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

文/黃昱

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

  Regsvr32.exe注冊

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

  regsvr32 netshare.ocx &&注冊netshare.ocx控件

  regsvr32 /u netshare.ocx &&解除netshare.ocx控件的注冊

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

  臥龍傳說提醒:用regsvr32.exe注冊ActiveX控件雖然簡單,但需要用戶手工進行注冊,在不用時還需手工解除注冊。

  VFP環(huán)境注冊

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

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

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

  安裝程序注冊

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

  在用戶執(zhí)行安裝程序時,這些ActiveX控件將自動在用戶機器上安裝并注冊。

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

  加入代碼注冊

  首先,定義一個注冊控件的函數(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控件的注冊了(臥龍傳說提醒:一定要注意控件文件的路徑哦)。

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

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

  注冊函數(shù)注冊

  上面提到運行regsvr32.exe應(yīng)用程序?qū)棾鲎允欠癯晒Φ膶υ捒颍⒁饪磧?nèi)容“DllRegisterServer in netshare.ocx succeeded”或“UnDllregisterServer...”,其實,通常每個可用的ActiveX控件都有DllRegisterServer、UnDllregisterServer這兩個自注冊函數(shù)包含在其中,我們可以用定義API函數(shù)的方法(Declare <函數(shù)名> in <文件名> ... )來定義它,然后直接使用該函數(shù)來進行注冊和反注冊。

  同樣,我們先自定義一個注冊函數(shù)(臥龍傳說提醒:請注意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控件的注冊了。

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

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

  Clear Dlls

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

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

  API函數(shù)注冊

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

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

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

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

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

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 欧美激情精品久久久久久久九九九 | 欧美日韩视频在线第一区二区三区 | 黄网站在线播放视频免费观看 | 青草娱乐极品免费视频 | 青青青青久在线观看视频 | 日本操操操 | 亚洲欧美日产综合一区二区三区 | 久久久久久久久久久9精品视频 | 在线精品福利视频你懂的 | 国产精品久久久久亚洲 | 欧美精品做人一级爱免费 | 亚洲 欧美 手机 在线观看 | 婷婷免费在线 | 国产成人亚洲精品91专区高清 | 日本农村寡妇一级毛片 | 伊人久久综合成人亚洲 | 最新福利小视频在线播放 | 日韩视频在线观看一区二区 | 亚洲国产成人久久77 | 精品国产免费第一区二区 | 欧美日韩中文国产一区 | 加勒比一本大道香蕉在线视频 | 中文字幕一区二区三区免费视频 | 2022四虎海外永久地址 | 国产欧美日韩精品a在线观看高清 | 亚洲精品视频免费 | 亚洲精品高清视频 | 欧美日韩视频在线播放 | 一本色道久久综合网 | 欧美超大胆视频在线播放 | 欧日韩不卡在线视频 | 国产成人aaa在线视频免费观看 | 久99久精品免费视频热77 | 亚洲一区二区三区高清网 | 最新浮力影院地址第一页 | 中文字幕乱码在线观看 | 毛片免费观看久久欧美 | 久久久久草 | 中文在线日本免费永久18近 | 欧美视频在线观看一区 | 欧美日韩精品一区二区免费看 |