软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
IE网页文本采集的实现

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

该软件涉及到的技术有:

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

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


相关文章

相关软件