`
hereson
  • 浏览: 1454527 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

VB写一个IE插件

阅读更多

Q:
就类似于3721的插件一样,当用户浏览我的网站的时候,提示下载运行插件?

A:
实现方法如下:
首先需要获得IObjectWithSite接口的定义,你下载个olelib.tlb,包含了接口定义。然后创建一个ActiveX DLL工程,
在工程中引用这个tlb文件,并且引用Microsoft HTML Object Library(MSHTML.DLL)和mcrosoft Internet Controls(Shdocvw.dll)。

然后在工程的class1中写入如下代码:
‘Class1.bas
Option Explicit

' 实现IObjectWithSite接口来获得IE对象
Implements olelib.IObjectWithSite

Private WithEvents m_objIE As InternetExplorer

Private Sub IObjectWithSite_GetSite(riid As UUID, ppvSite As IUnknown)
Dim objUnk As olelib.IUnknown

'获得m_objIE IUnkown接口
Set objUnk = m_objIE

'返回所需要的接口
objUnk.QueryInterface riid, ppvSite
End Sub

Private Sub IObjectWithSite_SetSite(ByVal pUnkSite As IUnknown)
'获得IE接口
Set m_objIE = pUnkSite
End Sub

'编写m_objIE事件处理程式
' .
' .
' .
' .

将这个工程编译为:prjBHO.dll。编译工程后,可以通过调用regsvr32 prjBHO.dll注册这个组件,组件注册了以后,就会在注册表HKEY_CLASSES_ROOT\CLSID中注册组件的GUID。在注册表中用prjBHO.dll做关键字就可以查找到prjBHO.dll注册的GUID,然后将这个GUID拷贝下来,然后在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects下创建一个新项,项的名称就是这个GUID。 

搜索关键字并突出显示:
Private Sub m_objIE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Dim webdoc As HTMLDocument
Dim texbody As HTMLBody
Dim Rng As IHTMLTxtRange
Dim I As Byte
On Error Resume Next
Set webdoc = m_objIE.document
Set texbody = webdoc.body
Set Rng = texbody.createTextRange()
Do
If Rng.findText("言情") = False Then Exit Do
Rng.Select

'用IHTMLTxtRange的execCommand方法可以实现加粗等功能,如:
Rng.execCommand "bold"
Rng.execCommand "BackColor", True, "#FFbbDD"
Rng.collapse False
Loop
Rng.collapse True
End Sub
能搜索到并加背景色。但搜索总是无休止,到尾又从头再搜索。。。
如果判断是否搜索到页尾了吗?

 

 

用VB編寫IE插件   

實現方法如下:
     首先需要獲得IObjectWithSite接口的定義,你下載個olelib.tlb,包含了接口定義。然后創建一個
ActiveX DLL工程,在工程中引用這個tlb文件,并且引用Microsoft HTML Object Library(MSHTML.DLL)
和mcrosoft Internet Controls(Shdocvw.dll)。

然后在工程的class1中寫入如下代碼:

'Class1.bas

Option Explicit
'實現IObjectWithSite接口來獲得IE對象
Implements olelib.IObjectWithSite
Private WithEvents m_objIE As InternetExplorer

Private Sub IObjectWithSite_GetSite(riid As UUID, ppvSite As IUnknown)
   Dim objUnk As olelib.IUnknown
   '獲得m_objIE IUnkown接口
   Set objUnk = m_objIE
   '返回所需要的接口
   objUnk.QueryInterface riid, ppvSite
End Sub

Private Sub IObjectWithSite_SetSite(ByVal pUnkSite As IUnknown)
   '獲得IE接口
   Set m_objIE = pUnkSite
End Sub
Private Sub m_objIE_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
   Dim FileName As String
   FileName = App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & "Test.EXE"
   Shell FileName, vbNormalFocus
End Sub

將這個工程編譯為: prjBHO.dll。編譯工程后,可以通過調用regsvr32 prjBHO.dll注冊這個組件,組件
注冊了以后,就會在注冊表HKEY_CLASSES_ROOT\CLSID中注冊組件的GUID。在注冊表中用prjBHO.dll做關
鍵字就可以查找到prjBHO.dll注冊的GUID,然后將這個GUID拷貝下來,然后在注冊表HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects下創建一個新項,項
的名稱就是這個GUID。

分享到:
评论

相关推荐

    vb 锁ie插件原代码

    "vb 锁ie插件原代码"是一个关于如何使用VB来实现这一功能的示例代码。这个项目可能包含一个名为"lockie"的文件,它可能是VB源代码文件或编译后的执行文件,用于演示如何操作IE插件。 在VB中实现锁IE插件的功能,...

    VB内核的IE下载插件附实例源码.rar

    通过上述知识点,我们可以看出VB内核的IE下载插件不仅涉及VB编程,还包括了网络通信、文件操作、用户界面设计等多个方面的知识,是一个综合性的编程实践项目。对于学习VB和网络编程的开发者来说,这样的实例源码是一...

    VB对IE浏览器完全控制

    VB对IE浏览器完全控制是指通过编程语言VB来控制IE浏览器的各种操作,包括获得所有打开的浏览器窗口、获得每一个浏览窗口的内容等。下面我们将逐步介绍如何通过VB来控制IE浏览器。 一、如何获得Windows中所有打开的...

    WebKitCairo.zip_VB 浏览器 内核_VB6 谷歌内核_ie vb_浏览器控件_非IE内核

    VB环境下使用非IE内核的浏览器控件,Google

    VB IE

    在本项目中,"VB IE"的描述表明它是一个使用VB编写的程序,可以自由打开任意网址,并且具有记录用户操作的功能。 **IE浏览器** Internet Explorer(IE)是由微软公司开发的一款网页浏览器,它曾经是Windows操作...

    VB6WebKit插件_浏览器_magic2of_.Resources\en.lproj_wagon1eu_webkitvb调用

    VB6WebKit插件是专为Visual Basic 6 (VB6)设计的一款集成浏览器组件,它允许开发者在VB6应用程序中嵌入WebKit引擎,以...总的来说,VB6WebKit插件是VB6开发者扩展应用程序功能,跟上Web技术发展步伐的一个强大工具。

    VB6+IE activex_截全屏源码

    标题“VB6+IE activex_截全屏源码”涉及到的是使用Visual Basic 6 (VB6) 和 Internet Explorer ActiveX 控件来实现全屏截图的功能。...对于希望深入学习VB6和ActiveX的开发者来说,这是一个很好的学习案例。

    IE插件相关文档

    在IT领域,IE插件是Internet Explorer浏览器的一种扩展功能,它们通常以OCX或CAB文件的形式存在。本文将深入探讨OCX控件和CAB文件的制作流程,以帮助你理解如何创建和使用这些IE插件。 **一、OCX控件** OCX...

    解决vb中ie控件失效的办法

    总之,VB中IE控件失效是一个常见的问题,主要是由于IE版本升级和安全策略的改变。通过理解这些问题的本质并采取相应的解决措施,开发者可以有效地恢复控件的功能,并继续利用IE控件的强大功能。

    .Net IE 插件

    描述中提到"自己写的一个很简单的IE插件,使用VS.Net2005编写的",这意味着开发者使用了Visual Studio .NET 2005这个集成开发环境(IDE)来创建这个项目。VS.Net2005是微软发布的一款强大的开发工具,支持C#、VB.NET...

    asp.net网络硬盘的IE插件插件

    总的来说,ASP.NET网络硬盘的IE插件利用了ASP.NET的强大功能,结合VB的易用性,为用户提供了一个安全、便捷的在线存储解决方案。通过这种技术,企业或个人可以构建自己的云存储服务,无需依赖第三方平台,同时享受到...

    BHO 插件开发的VB示例源代码

    1. **创建VB项目**:在Visual Studio中创建一个新的类库项目,并设置其为目标平台为x86,因为大多数IE版本仍为32位。 2. **实现COM接口**:首先,我们需要实现IUnknown接口,以支持对象的创建和引用计数。然后,...

    VB不使用BHO拦截IE事件

    3. **BHO(Browser Helper Object)**:BHO是IE的一个插件机制,允许开发者创建可以在浏览器运行时加载的COM对象,以扩展浏览器功能。然而,由于BHO可以直接访问浏览器内部,如果不正确或恶意使用,可能导致安全问题...

    VB模仿大漠找图的源代码,高效快速,纯VB6源码开源

    大漠插件是一个广泛应用于自动化测试、图像识别领域的软件,尤其在网页元素定位和颜色匹配方面表现出色。VB6是一个早期的微软开发环境,用于创建Windows应用程序。通过这段源代码,开发者可以学习如何在VB6中实现...

    VB 透明PNG图片显示控件

    总之,"VB 透明PNG图片显示控件"是一个解决VB6与PNG图像透明显示问题的解决方案。通过利用GDI+的功能,开发者可以创建出能够正确显示PNG透明效果的自定义控件,提升应用程序的视觉效果。在实际项目中,这样的控件...

    IE插件说明

    - **控制或访问客户端资源**:有时候需要访问用户的本地资源或系统设置,这也是插件的一个重要用途。 #### 四、IE版本支持 从IE4.0开始,浏览器支持了一定程度的扩展能力。具体来说: - **IE4.0**:支持Explorer ...

    VB6简单实现web打印ActiveX插件源码 V2.0

    在这个场景中,我们将讨论如何使用VB6来实现一个Web打印的ActiveX插件。 ActiveX是微软提出的一种组件对象模型,它允许开发者创建可以在多种应用程序之间共享的控件。在VB6中,通过ActiveX技术,我们可以创建可插入...

    使用IVS2003写的E插件源码

    描述中的“使用VS2003写的IE工具条插件,希望对那些想编写IE插件的人有所帮助”提示我们,这个源代码项目是一个IE工具栏插件,它是开发者为学习或参考而创建的。对于想要自己编写类似插件的初学者来说,这个源代码...

    VB6多标签多页面浏览器源代码

    在VB6(Visual Basic 6)环境中,开发一个多标签、多页面的Web浏览器是一个复杂的任务,但也是学习和理解浏览器定制、用户界面设计以及组件利用的良好实践。此项目中的源代码提供了一个完整的实现,涵盖了以下几个...

Global site tag (gtag.js) - Google Analytics