资料收集工具(易语言2005年大赛三等奖)
“Glean资料收集工具”设计文档
参赛的几项说明:
*本程序使用 3.8 版编写。
*文件清单及位置:(12个文件,没有易编译后的exe程序和发布安装程序)
(工作目录下)
设计文档.txt 本资料
glean.e 资料收集工具主程序
gettext.e 快速保存文字资料程序
G_HELP.CHM 帮助文件
getresource.dll 传递信息的 DLL 文件(源程序在本资料中)
glean01.ico IE 工具按钮的图标
glean02.ico IE 工具按钮的图标
regvsr32.exe 系统注册程序(每台机器都应该有)
data(子目录)
zlk.edb 资料库
zlk.edt 资料库
glean简要说明.ewd EWD文档的例子
glean简要说明.rtf RTF文档的例子
一、本次参加大奖赛的修改说明:
原来的程序主要是编辑HTML格式的资料,因此使用了微软的 dhtmled.ocx,由于本次大奖赛要求不能使用外部OCX控件,易语言没有这方面的支持库。为了适应大奖赛的要求,删除了 dhtmled.ocx 控件,改用办公组件。我认为这使软件的通用性变差。
二、程序的调用流程:
程序有两种启动方式:1 直接启动主程序,实现资料的浏览、编辑功能。2 由 IE 浏览器启动,实现收集资料的功能。对于后者的启动流程分解如下:
1、由自定义的 IE 工具按钮、或者右键菜单,分别通过注册表启动 geturl.htm 和 gettext.htm 脚本程序。
2、脚本程序负责生成 IE 中的必要信息(网页地址、功能信息、程序的执行路径、网页名称。),然后启动 GetResource.dll ,并传递参数。
3、GetResource.dll 根据功能信息(按钮或右键)分别启动不同的 E 程序,完成收集资料的工作。
三、脚本程序。比较简单,可以直接查看程序安装目录下的文件。(首次运行主程序 glean 即可生成)
四、GetResource.dll
注:E 语言生成的 Dll 文件不能被 windows 注册,所以使用 VB 编写。
GetResource.dll 文件的作用是充当调用 E 程序的桥梁。它的功能有两个:
1、传递参数。
2、根据功能信息(INFO)调用不同的 E 程序。
它只有一个子程序,如下:
Public Sub geturl(URL As String, Info As String, sFilePath As String, sName As String)
'入口参数: URL--网页的地址,INFO--“按钮”或“右键”,SFILEPATH--程序的执行路径,SNAME--网页的名称。
Dim szlPath As String, sdirTemp As String
Dim strInfo As String
Dim sFlName As String
Dim Errno As Variant
sFilePath = Replace(sFilePath, "\\", "\")
sFlName = Replace(sName, " ", "<@>") 'dos的参数是用空格分段的。
If Info = "右键" Then
'右键,直接保存。
strInfo = sFilePath + "\gettext.exe " + URL + " " + sFilePath + " " + sFlName
Else
'按钮,调出资料编辑窗口
strInfo = sFilePath + "\glean.exe " + URL + " " + sFilePath + " " + sFlName
End If
Errno = Shell(strInfo, 1)
End Sub
五、在 IE 浏览器上增加工具按钮和右键菜单的方法。
1、增加工具按钮
对于注册表的主键:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions 作如下操作:
(1)在Extensions中新建主键,主键的命名格式为“{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”,如:{11111111-2222-3333-4444-555555555555},这里不能和其它主键名发生重复。
(2)在新建的主键中建立名为ButtonText的字符串,该字符串的作用是定义按钮上显示的文字。
(3)建立名为Clsid的字符串,其值固定为{1FBA04E