当前位置:首页 > VB > 正文内容

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

canca17年前 (2009-04-02)VB486

实现方法如下:

首先需要获得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

能搜索到并加背景色。但搜索总是无休止,到尾又从头再搜索。。。

如果判断是否搜索到页尾了吗?

有心请有这个页面测试:

http://www.51res.com/

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/331.html

标签: VB
分享给朋友:
返回列表

上一篇:VB BHO

下一篇:Browser Helper Objects

“就类似于3721的插件一样,当用户浏览我的网站的时候,提示下载运行插件 ” 的相关文章

在VB中实现MD5算法

——————————————————————————————————————Option Explicit Dim w1 As String, w2 As String, w3 As String, w4 As String Function MD5F(ByVal tempstr As Str...

VB BHO

以前一直不知道有BHO这个名字,但一直对IE中的"加载项"编程念念不忘. 前不久一网友让我做一个小程序,功能就是替换网页中指定的内容,但是不启动软件,直接用IE看的话就是原文.感觉有点意思的,因为不知道原理,网上找了一下BHO这个名词自然就落入眼底了. BHO(浏览器辅助对象)用于IE的加载项中,可...

我的网友第一个bho作品

转自:http://hi.baidu.com/zzjwl/blog/item/60ecf8de3bf4bf5c95ee3725.html 去年用vb做bho,没有成功,最近偶然到网络搜索,有那么多资料。边看边做,终于ok! Implements IObjectWithSiteTLB.IObjectW...

VB使用VarType判断数据类型

在VB代码编写过程当中 有时候我们不熟悉一些函数或过程调用之后 返回的数据类型是什么 这个时候可以使用VarType(VarName)这个函数去测试变量的数据类型 返回值是一个整形数值 对应一下列别就可以知道变量的数据类型了 这样就可以对应的把变量给赋值了 常数 值 描述 vbEmpty 0 Emp...

CreateDesktop实现虚拟桌面

CreateDesktop实现虚拟桌面

'Module1 引用: Public Declare Function GetThreadDesktop Lib "user32" (ByVal dwThread As Long) As Long 'Public Declare Function CreateDesktop Lib "user3...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。