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

下載本文檔

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

文檔簡介

1、vb6下手把手教你做bho插件你好!歡迎你來看我寫的文章,我想寫的是如何讓一個初級的vb愛好者簡單的學會做bho插件,所以我會搞的很煩瑣,很細致,您不要不耐煩就好。對于理論,基本靠后,因為我也不清楚。我們只要知道在何處修改代碼能滿足我們的要求就可以了。第一節(jié) 工具準備vb6.0你肯定安裝了吧?另外注意安裝的光盤里有一個目錄,在我的電腦里是F:VB6.0COMMONTOOLSVBUNSUPPRTTYPLIB,這個目錄里有一個文件MKTYPLIB,是用來生成庫文件的。找到,備用。如果你嫌麻煩,可以在我這里下載。相關(guān)附件再就是在你的操作系統(tǒng)目錄下有一個systm32目錄,在里面有一個exe文件,名字

2、是regsvr32,是用來注冊組件的。這兩個文件都可以在dos下執(zhí)行,帶一些參數(shù)去執(zhí)行。windows下執(zhí)行的時候,會出來一個簡單的向?qū)?,告訴你如何使用。最簡便的方法是把他們同你要處理的文件拷貝到一個目錄下,然后把需要處理的文件拖拉到他們的圖標上,就ok了。第二節(jié) 生成庫文件IObjectWithSiteTLB.tlb新建一個文本文件,把下面的代碼復制進去: 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    ,注意把全名寫在文件名里,保存類型選所有文件。如下圖: 然后在資源管理器里,把這個IObjectWithS

5、iteTLB.odl拖到 MKTYPLIB.exe上,注意看,自動生成了我們要用的文件IObjectWithSiteTLB.tlb,記下他的位置。第三節(jié) 建立dll工程打開vb6.0 -新建一個工程,類型為activeX dll 。 參看下圖: 把下面的代碼復制進去,能理解的好,不能理解的就當是黑盒子。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é) 添加引用你馬上可以運行一下,結(jié)果當然會出錯。是不是這個提示?這個類型的定義在我們前邊生成的那個庫里,我們沒有告訴vb,她

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

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

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

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

溫馨提示

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

評論

0/150

提交評論