IE网页文本采集的实现

news/2024/11/9 23:41:13
 
  IE网页文本采集的实现     选择自 dansin 的 Blog
关键字  IE网页文本采集的实现
出处 
前不久,有人在论坛上求一个能够自动完成网页文本采集的软件。具体功能是,当用户选择网页中的一段文本时,单击鼠标右键,则会在右键菜单中看到“保存为文本文件”的选项,这篇文章讲一讲我实现的这个小软件的技术及思想。

该软件涉及到的技术有:

1、IE编程,主要是如何将右键菜单嵌入到IE右键菜单里去。
2、COM(组件对象模型)编程。
3、VB脚本编程。

实现该软件的基本思想及流程:

1、向系统注册一个COM组件,该组件提供接口SaveText(BSTR str),SaveText接口能将str保存为指定路径下的文本文件。
2、修改注册表,将“保存为文本文件”选项添加到IE右键菜单中。
3、建立VB脚本,关联菜单选项与COM组件调用。

这样,用户在选择文本后能选择“保存为文本文件”,程序就能将选择的文本传入COM组件。

下面是实现上述三个步骤的细节:(开发环境:Visual C++ 6.0)

1、在VC里建立ATL工程,并为COM组件添加接口SaveText(BSTR str),该接口调用SaveText.dll里的SaveText函数(该函数弹出对话框,并将对话框中文本框里的内容保存为用户指定路径的文本文件),完成保存文本功能。
2、修改注册表,在HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/子键下添加“保存为文本文件”子键,其下设立两个值,其中默认值为执行脚本的所在路径,Contexts值表示在IE 中单击鼠标右键里何时显示该菜单选项(说细说明见http://support.microsoft.com/kb/q177241/)。
3、建立VB脚本的目的是为了让用户单击“保存为文本文件”选项时执行该脚本,然后脚本创建COM对象,完成保存文本文件功能,在网页中选择用户选中文本的脚本程序可以如下书定:
       On Error Resume Next
       set nc=CreateObject("SeizeText.Seize")
       if err<>0 then
           MsgBox("error..")
       else
           nc.CatchHtmlText(external.menuArguments.document.selection.createRange().text)
       end if

在完成上述步骤后,网页文本采集功能就实现了。
                  

作者Blog: http://blog.csdn.net/dansin/
相关文章

http://www.niftyadmin.cn/n/4819769.html

相关文章

flutter页面布局二

Stack 在flutter中&#xff0c;Stack表示堆的意思&#xff0c;可以用来实现页面的定位布局。 Stack组件接收两个可选参数&#xff1a; alignment&#xff1a;配置所有子元素的显示位置children&#xff1a;子组件在上面的Stack组件里面定义了一个Container和两个Text组件&#…

指针初始化是非常重要的,当我们在声明一个指针的时候请记得给它赋初值NULL,free释放完指针内容的时候也给他赋null初值。谢谢

没有初始化的指针是最危险的&#xff0c;因为它可能指向任何地址区域。所以如果没有显示的将其初始化为null&#xff0c;那他肯定不为空。这是释放它所指向的内存。肯定会出错。指针初始化是非常重要的&#xff0c;当我们在声明一个指针的时候请记得给它赋初值NULL&#xff0c;…

CxImage类使用入门

过几天我再写,实在是没有时间. 关于这个类,可以看CodeProject上的文章:http://www.codeproject.com/bitmap/CXImage.asp CxImage是一个可以用于MFC的C类&#xff0c;可以打开&#xff0c;保存&#xff0c;显示&#xff0c;转换各种格式的图像文件,比如BMP, JPEG, GIF, PNG, TI…

FAQ:如何从URL取得其在Internet Cache中的文件名

FAQ&#xff1a;如何从URL取得其在Internet Cache中的文件名 选择自 CathyEagle 的 Blog 关键字 FAQ&#xff1a;如何从URL取得其在Internet Cache中的文件名出处 问张硕&#xff0c;你好&#xff0c; 我目前对IE编程感兴趣&#xff0c;在网上看到了你的文章&#xff0…

基础链表实现

前言最近在复习数据结构的相关知识&#xff0c;感觉在初学的时候还是有很多东西没有掌握&#xff0c;不过现在终于算是搞得比较有头绪了&#xff0c;所以就在写出来和大家一起分享&#xff01; 什么是链表简单的说&#xff0c;链表就是由多个结点离散分配&#xff0c;彼此通过指…

Internet Explorer 编程简述(一)WebBrowser还是WebBrowser_V1收藏

Internet Explorer 编程简述&#xff08;一&#xff09;WebBrowser还是WebBrowser_V1收藏 新一篇: Internet Explorer 编程简述&#xff08;二&#xff09;在IE中编辑OLE嵌入文档 | 旧一篇: Internet Explorer 编程简述&#xff08;序&#xff09; <script>function Stor…

第五次个人博客 Android studio测试软件——Ui Automator测试学习及运用

在第十五周的个人博客上要求我们根据最终的团队大作业所用的软件&#xff08;Android studio&#xff09;进行软件测试的介绍&#xff0c;我选择的是基于Android自动化测试的Ui Automator安卓测试软件&#xff0c;下面我将对其进行简单的介绍。 1、UiAutomator简介 Uiautomator…

Java-MyBatis-MyBatis3-XML映射文件:XML映射文件

ylbtech-Java-MyBatis-MyBatis3-XML映射文件&#xff1a;XML映射文件1、 XML 映射文件 MyBatis 的真正强大在于它的映射语句&#xff0c;这是它的魔力所在。由于它的异常强大&#xff0c;映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比&#xf…