vb6下手把手教你做bho插件_第1頁(yè)
vb6下手把手教你做bho插件_第2頁(yè)
vb6下手把手教你做bho插件_第3頁(yè)
vb6下手把手教你做bho插件_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、vb6下手把手教你做bho插件你好!歡迎你來(lái)看我寫的文章,我想寫的是如何讓一個(gè)初級(jí)的vb愛(ài)好者簡(jiǎn)單的學(xué)會(huì)做bho插件,所以我會(huì)搞的很煩瑣,很細(xì)致,您不要不耐煩就好。對(duì)于理論,基本靠后,因?yàn)槲乙膊磺宄N覀冎灰涝诤翁幮薷拇a能滿足我們的要求就可以了。第一節(jié) 工具準(zhǔn)備vb6.0你肯定安裝了吧?另外注意安裝的光盤里有一個(gè)目錄,在我的電腦里是F:VB6.0COMMONTOOLSVBUNSUPPRTTYPLIB,這個(gè)目錄里有一個(gè)文件MKTYPLIB,是用來(lái)生成庫(kù)文件的。找到,備用。如果你嫌麻煩,可以在我這里下載。相關(guān)附件再就是在你的操作系統(tǒng)目錄下有一個(gè)systm32目錄,在里面有一個(gè)exe文件,名字

2、是regsvr32,是用來(lái)注冊(cè)組件的。這兩個(gè)文件都可以在dos下執(zhí)行,帶一些參數(shù)去執(zhí)行。windows下執(zhí)行的時(shí)候,會(huì)出來(lái)一個(gè)簡(jiǎn)單的向?qū)В嬖V你如何使用。最簡(jiǎn)便的方法是把他們同你要處理的文件拷貝到一個(gè)目錄下,然后把需要處理的文件拖拉到他們的圖標(biāo)上,就ok了。第二節(jié) 生成庫(kù)文件IObjectWithSiteTLB.tlb新建一個(gè)文本文件,把下面的代碼復(fù)制進(jìn)去: uuid(CF9D9B76-EC4B-470D-99DC-AEC6F36A9261), helpstring("VB IObjectWithSite Interface"), version(1.0) library

3、IObjectWithSiteTLB importlib("stdole2.tlb"); typedef public long GUIDPtr; typedef public long VOIDPtr; uuid(00000000-0000-0000-C000-000000000046), odl interface IUnknownVB HRESULT QueryInterface( in GUIDPtr priid, out VOIDPtr *pvObj ); long AddRef(); long Release(); uuid(FC4801A3-2BA9-11CF

4、-A229-00AA003D7352), odl interface IObjectWithSite:IUnknown typedef IObjectWithSite *LPOBJECTWITHSITE; HRESULT SetSite(in IUnknownVB* pSite); HRESULT GetSite(in GUIDPtr priid, in, out VOIDPtr* ppvObj); 另存為:IObjectWithSiteTLB.odl    ,注意把全名寫在文件名里,保存類型選所有文件。如下圖: 然后在資源管理器里,把這個(gè)IObjectWithS

5、iteTLB.odl拖到 MKTYPLIB.exe上,注意看,自動(dòng)生成了我們要用的文件IObjectWithSiteTLB.tlb,記下他的位置。第三節(jié) 建立dll工程打開vb6.0 -新建一個(gè)工程,類型為activeX dll 。 參看下圖: 把下面的代碼復(fù)制進(jìn)去,能理解的好,不能理解的就當(dāng)是黑盒子。Implements IObjectWithSiteTLB.IObjectWithSiteDim WithEvents IE As InternetExplorerDim M_Site As IUnknownVBPrivate Sub IObjectWithSite_GetSite(ByVal

6、Priid As IObjectWithSiteTLB.GUIDPtr, PPVobj As IObjectWithSiteTLB.VOIDPtr)M_Site.QueryInterface Priid, PPVobjEnd SubPrivate Sub IObjectWithSite_SetSite(ByVal pSite As IObjectWithSiteTLB.IUnknownVB)Set M_Site = pSiteSet IE = pSiteEnd Sub第四節(jié) 添加引用你馬上可以運(yùn)行一下,結(jié)果當(dāng)然會(huì)出錯(cuò)。是不是這個(gè)提示?這個(gè)類型的定義在我們前邊生成的那個(gè)庫(kù)里,我們沒(méi)有告訴vb,她

7、當(dāng)然找不到了。在“工程”-“引用”里,通過(guò)瀏覽引用我們生成的IObjectWithSiteTLB.tlb   ,再次運(yùn)行,這個(gè)錯(cuò)誤不再出現(xiàn)了。但是會(huì)出現(xiàn)另外一個(gè)錯(cuò)誤,這是因?yàn)榱硗獾囊粋€(gè)類型定義Dim WithEvents IE As InternetExplorer,找不見(jiàn)。我想你應(yīng)該知道要加入一個(gè)什么引用吧? (microsoft internet controls)。好了,以上都是死套套,下面我們能自由活動(dòng)了。第五節(jié) webbrowser編程用過(guò)webbrowser 吧? 也就是microsoft internet controls里定義的瀏覽器控件。用過(guò)的話,下面的內(nèi)

8、容就好發(fā)揮了?,F(xiàn)在,我們只要針對(duì)ie的各個(gè)事件編寫代碼就可以了。參看下圖:我們先寫一個(gè)簡(jiǎn)單的,測(cè)試有效果后再整復(fù)雜點(diǎn)。我寫個(gè):Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)MsgBox URL, vbInformation, "海藍(lán)港灣"End Sub意思是 瀏覽器每次瀏覽完成后,.。不說(shuō)了,大家都看得懂,再說(shuō)要挨罵了。第六節(jié) 測(cè)試插件生成bho1010.dll ,當(dāng)然你知道名字是你自己來(lái)取的。在資源管理器你把bho1010.dll 拖拉到regsvr32.exe身上,顯示注冊(cè)成功

9、。運(yùn)行regedit.exe 在注冊(cè)表里搜索bho1010.dll ,你會(huì)在HKEY_CLASSES_ROOTCLSID中看到注冊(cè)組件bho1010.dll 的GUID。然后將這個(gè)GUID拷貝下來(lái),然后在注冊(cè)表 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects 下創(chuàng)建一個(gè)新項(xiàng),項(xiàng)的名稱就是這個(gè)GUID。 搞定以后,打開IE,看看效果出現(xiàn)了嗎?修改的時(shí)候,只要關(guān)閉了 ie, 重新生成bho1010.dll 文件就可以。當(dāng)然,你可以在 ie的“工具(T)”-"管理加

10、載項(xiàng)下",啟用/禁用 你的插件第七節(jié) 后記似乎你很失望,如此煩瑣。其實(shí)成熟后,這些都可以讓程序來(lái)完成。我的擺渡鐵吧簽名 也僅僅是加了下面的代碼:Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)On Error Resume Next '不理會(huì)錯(cuò)誤If InStr(1, URL, " > 0 Then   '如果是擺渡的鐵吧就開始工作     Dim temp As String     temp = vbLf + vbLf + vbLf + vbLf + vbLf + vbLf + "=" + vbLf     temp = temp & "在這里了= + vbLf +

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論