VB掌管WebBrowser访问MSHTML成员一点经验

Visual Basic实现的Internet Explorer自动控制与日志记录程序 本文还有配套的精品资源,点击获取 简介:VB是一种易学易用的编程语言,借助COM组件,能够直接与IE浏览器交互。本项目描述了一个使用VB编写的程序,可以打开任意网页,并记录用户的浏览操作。通过 MSHTML 库,创建 InternetExplorer.Application 对象实现对浏览器的控制,包括打开网页、记录URL等功能。此外,程序还展示... 阅读详情

VB掌管WebBrowser访问MSHTML成员虽然较VC++有限,但对大多数的应用问题不大,而且实现过程也很简单.

一.在VB中使用WebBroswer控件
1.在VB中使用Microsoft Internet Controls做浏览器最方便,但远不能尽WebBrowser之所能. VB能够实现的一些功能如下:
   >掌管WebBrowser控件实现浏览功能
   >自动化IE
   >捕捉IE事件
   >访问DHTML对象模型
但VB不能使用高级掌管接口实现例如关闭Context Menu和控制下载内容等一些功能.有关用VB对IE编程的知识可以参考微软图书<<Microsoft Internet Exploer 5 程序设计(Programmning Internet Explorer 5)>>的相应部分.

2.调用WebBrowser的ExecWB方法能实现一些额外的功能比如CUT,PASTE和SAVEAS等,包含在OLEMDID枚举表中,可以在对象浏览器中看到. 这样我们就可以使WebBrowser具有一些编辑功能,如:
      WebBrowser1.ExecWB OLECMDID_PASTE, OLECMDEXECOPT_DODEFAULT
可以把HTML格式的内容粘贴进WebBroser中, 这样就可以方便的实现一个HTML剪贴工具,既拷贝字符,又保留格式,NotePad靠边站吧.

二.访问MSHTML成员

1.用VB访问DHTML模型,实现对HTML元素的操作非常简单易行.引用Micsoft HTML Object Library之后就可以在对象浏览器看到包含的类及其属性方法.其中主要包含以HTML和IHTML为类名前缀的类,这些类给HTML, DHTML以及脚本(VBSCRIPT, JAVASCRIPT)对象提供定义与接口. 在VB中我们可以用这些类来创建用于访问网页元素的对象实例.而且程序编制与写网页脚本一样简单且相似,所以可以用VBSCRIPT和JAVASCRIPT的资料作参考(本人在学习VB的这一应用时学通了DHTML),例如:微软图书<<动态超文本标识语言从入门到精通(Inside Dynamic HTML)>>(一本翻译的很烂的书!). 如果掌握了VC++ 和MFC, MSDN自然也是个好去处, 那儿有关于MSHTML的丰富资料(虽然不能往VB里照搬,我们可以试验VB在许多方面的可行性.)

2.MSHTML类库[Micsoft HTML Object Library]
    访问MSHTML要引用MSHTML组件库.在IE5以前,这个库包含在mshtml.dll中,对IE5来说这个类型库被转移到mshtml.tlb中. 出于某种原因,也许在引用列表里看不到Micsoft HTML Object Library, 不过可以在文件对话框里键入类型库文件名添加引用.

3.一个例子: 在使用搜索引擎(例如MSN)搜索英文网页时, 希望关键字在搜到的条目中高亮或加重显示. 我让WebBrowser导航到搜索页面,然后给所有的关键字都加上了<SPAN>,另外把网页上的超链接都塞进一个列表框. 其中的查找关键字使用IHTMLTEXTRANGE, 它用于对网页上文本的访问.


部件: Microsoft Internet Controls
引用: Micsoft HTML Object Library --- 参看"MSHTML类库"
控件: WebBrowser1; List1; Label1; Command1
属性: Command1.Caption="FIND"


CODE:

Dim webdoc As HTMLDocument
Dim texbody As HTMLBody
Dim Rng As IHTMLTxtRange
' ----------------------------------------------------------------------------------------
Private Sub Command1_Click()
'查找关键字
On Error Resume Next
Set texbody = webdoc.body
Set Rng = texbody.createTextRange()
Do While Rng.findText(Text1.Text) <> False
Rng.Select
Rng.pasteHTML "<span style='background:SILVER'>" + Text1.Text + "</span>"
'
'用IHTMLTxtRange的execCommand方法可以实现加粗等功能,如:
'Rng.execCommand "bold"
'Rng.execCommand "underline"
'Rng.execCommand "italic"
'参看MSDN>DHTML Reference>Command Identifers
'
Rng.collapse False
Loop
Rng.collapse True
End Sub
'---------------------------------------------------------------------------------------------
Private Sub Form_Load()
WebBrowser1.navigate "http://search.msn.com/results.asp?q=wordlist"
Text1.Text = ""
End Sub
'---------------------------------------------------------------------------------------------
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'将webdoc设置到被WebBrowser的Document属性返回的文挡对象中
Set webdoc = WebBrowser1.document
'提取超链接
''定义元素集
Dim Acollection As IHTMLElementCollection
''设置元素集为所有的Anchor元素,用tags方法引用元素
Set Acollection = webdoc.All.tags("a")
''把Anchor元素转换为相应的字符串表示,用items方法引用元素
For i = 0 To Acollection.length - 1
    List1.AddItem Acollection.Item(i).toString
Next
'length属性返回元素集中元素的个数
Label1.Caption = "Number of links: " + Str$(Acollection.length)
End Sub

     

数学概念 | 旋转矩阵、欧拉角、四元数 旋转矩阵、欧拉角、四元数概念及相关运算; 阅读详情

相关推荐

西门子PLC实战:基于1200/1500的工业物联网MQTT通讯全解析

本文详细解析了如何在西门子S7-1200/1500系列PLC上实现工业物联网MQTT通讯。通过从硬件准备、网络配置到TIA Portal中MQTT_Client功能块的实战编程,手把手指导工程师打通车间数据桥梁,解决信息孤岛问题,实现PLC数据高效上云或设备间互联。

whisky的博客 1089

vb.net 教程 12-4 msHtml 1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,提供了网页HTML文档的多种接口,通过这些接口,可以访问指定网页的所有元素,实现很多高级功能。 例如:MSHTML提供了丰富的HTML文档接口,包括IHTMLDocument、IHTMLDocument2、…、IHTMLDocument8等。IHTMLDocument相比HtmlDocument类虽然用法很相似,但是

chinaherolts2008的博客 376

基于STM32的3D打印机控制

通过本项目,我们成功搭建了一个基础的3D打印机控制系统,能够控制步进电机和加热元件。这为使用STM32开发功能丰富的3D打印机提供了基础,您可以在此基础上继续扩展功能,如增加LCD显示、SD卡存储、联网控制等功能。在这个项目中,我们将使用STM32微控制器开发一个基础的3D打印机控制系统。通过控制步进电机、加热元件和温度传感器,我们将实现一个简单的FDM(熔融沉积制造)3D打印机控制。- 检查PWM信号的生成功能,确认加热元件的控制逻辑是否正常。- 增加适当的滤波和校准算法,以提高温度读取的准确性。

2401_88938661的博客 1502

使用MSHTML解析HTML页面

最近在写一个爬虫项目,本来打算用C/C++来实现,在网上查找有关资料的时候发现了微软的这个MSHTML库,最后发现在解析动态页面的时候它的表现实在是太差:在项目中需要像浏览器那样,执行JavaScript等脚本然后形成静态的HTML页面,最后才分析这个静态页面。但是MSHTML在执行JavaScript等脚本时需要配合WebBroswer这个ActiveX控件,这个控件又必须在GUI程序中使用,但是

Masimaro的专栏 1万+

运行stable-diffusion出现的问题

解决:即用 https://github.com/CompVis/taming-transformers/blob/master/taming/modules/vqvae/quantize.py 新文件,替换错误提示文件中的全部内容即可。5.新建文件夹 CompVis/stable-diffusion-safety-checker/将下载的四个文件放入 解决!后面还会遇到'openai/clip-vit-large-patch14离线下载的问题,同样步骤解决。解决:下载后离线,步骤如下。

weixin_52121118的博客 2346

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3010

如何MSHTML命名空间解析HTML文件(MSHTML::IHTMLDocument2Ptr 提示错误)

1.创建Win32或MFC工程.2.在预编译或需要使用MSHTML命名空间的头文件中添加以下语句:    #include     #include     #import 3.前置条件设置完成,现在可以开始使用MSHTML访问里面的智能指针了。例:MSHTML::IHTMLDocument2Ptr pHTMLDoc2;MSHTML::IHTMLDocument3Ptr pHTMLDoc3;……然后解析自己需要的HTML元素。

Code Captain的专栏 4051

Dify使用教程3:Dify创建工作流

Dify使用教程3:Dify创建工作流 接着,我们连接下一个节点:“LLM”填入上下文变量为:result。这时候知识库就添加成功了。添加新节点:结束节点。

拥抱具身智能,昇腾Ascend C 5128

vb microsoft html object library,HTML对象库简介(Microsoft HTML Object Library -> mshtml.tlb)...

获取网页数据必须使用HTML对象库,可在“引用”窗体中添加对“Microsoft HTML Object Library”的引用。HTML对象库提供了大量的对象,这些对象和各类HTML标记相对应,如熟悉的“”、 “”、“< body>”和“”标记,一些常用HTML对象的知识点如下所述:   (1)HTMLAnchorElement对象:该对象代表网页中超级链接(即“”)标记,其常用属性...

weixin_35799467的博客 877

[特殊字符] 从零构建携程/飞猪机票价格爬虫:Python异步抓取与反爬对抗实战

在出行决策、竞品分析、价格预测模型训练等场景中,稳定获取携程(Ctrip)和飞猪(Fliggy)的实时机票价格波动数据是刚需。然而,这两大平台均部署了业界顶尖的反爬体系——包括但不限于:动态请求签名(SignToken设备指纹采集(UACanvasWebGL接口参数加密(X-Sign_abtestcookie混淆)频率限制与 IP 封禁(滑动窗口 + 行为检测)目录前言:为什么需要自建机票价格爬虫?一、技术选型与项目架构1.1 核心技术栈1.2 系统架构图(文字描述)1.3 法律与道德声明。

2201_76125261的博客 337

【人工智能 Open AI】程序员怎样提升研发效率?从技术、业务、项目管理等等多个方面来阐述。

程序员要想提升研发效率,需要从技术、业务、项目管理等多方面着手,多靠工具配合实践实现,从而提升研发效率。

AI天才研究院 5526

使用MSHTML解析HTML代码

从国外站点转过来的:C++版本:I have a lot ofexperience in programming low-level MSHTML and I always see questionson how one can use MSHTML to parse HTML and then access elements viathe DOM. Well,

不得闲.闲忆居 7582

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】---来自一位即将入学的准研一,也希望这篇文章能够激励自己不断走下去!!

qq_46044325的博客 4441

vb.net 教程 12-4 msHtml 2

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 窗体设计界面: “转到”按钮的代码: Private Sub btnGoto_Click(sender As Object, e As EventArgs) Handles btnGoto.Click wbMain.Navigate(txtUrl.Text) End Sub 获得网页基本信息: Private Sub Button1_Clic...

chinaherolts2008的博客 311

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

HTML对象库简介(Microsoft HTML Object Library -> mshtml.tlb)

  获取网页数据必须使用HTML对 象库,可在“引用”窗体中添加对“Microsoft HTML Object Library”的引用。HTML对象库提供了大量的对象,这些对象和各类HTML标记相对应,如熟悉的“”、 “”、“”和“”标记,一些常用HTML对象的知识点如下所述:   (1)HTMLAnchorElement对象:该对象代表网页中超级链接(即“”)标记,其常用属性和方法如下所述:   href属性:该属性用于设置链接的目标。

两天打鱼三天晒网 7318

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于引用mshtml的问题

    今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。     第一篇文章:     1.添加引用的问题     一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引...

weixin_34220834的博客 343

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Paperback
博客等级 码龄25年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值