随着网络应用的不断扩展,采用html语言编写的文档越来越多,如何在vb程序中实现对html文档的浏览是一个需要解决的问题。本文以一个实例说明了在vb中调用和控制inte.net explorer的方法。
一、 编程准备
vb通过ole自动化技术创建和控制inte.net explorer对象的实例,因此,在新建一个工程后需要加入microsoft inte.net 控制的参考,方法是打开visual basic 的project下拉菜单中的reference…选项,单击browse…按钮,在windows的system目录下找到shdocvw.dll并选中它,它是inte.net explorer的类库。
二、 实现方法
在窗体form1中添加表1所示的控件。 控件类型 控件名称 控件内容
label lable1 地址:
text text1 (空)
command cmdview 浏览
command cmdforward 向前
command cmdbackward 向后
command cmdcloseview 关闭浏览窗口
command cmdexit 退出
对上述窗体添加如下代码即可实现对inte.net explorer的调用与控制,
dim withevents ieview as inte.netexplorer
'在通用模块中定义inte.net explorer对象
private sub form_load()
cmdforward.visible = false
cmdbackward.visible = false
cmdcloseview.visible = false
'窗体调入时隐藏inte.net explorer控制按钮
end sub
private sub cmdview_click()
dim txtaddress as string
on error resume next '设置错误陷阱
set ieview = getobject("", "inte.netexplorer.application")
ieview.visible = true
'创建inte.net explorer对象的一个实例,并设为可见
txtaddress = trim(text1.text)
ieview.navigate txtaddress, navnoreadfromcache
'按text1控件的内容进行浏览
cmdview.enabled = false
cmdexit.enabled = false
cmdforward.visible = true
cmdbackward.visible = true
cmdcloseview.visible = true
'使浏览、退出命令钮无效,使ie控制命令钮可见
end sub
private sub cmdforward_click()
on error resume next '设置错误陷阱
ieview.goforward
end sub
private sub cmdbackward_click()
on error resume next '设置错误陷阱
ieview.goback
end sub
private sub cmdcloseview_click()
on error resume next '设置错误陷阱
ieview.quit
end sub
private sub ieview_onquit()
set ieview = nothing
'消除ieview对象
cmdforward.visible = false
cmdbackward.visible = false
cmdcloseview.visible = false
cmdview.enabled = true
cmdexit.enabled = true
'恢复初始按钮状态
end sub
private sub cmdexit_click()
end
end sub
程序启动后"向前"、"向后"、"关闭浏览窗口"等命令钮不可见,在文本框内输入相应的url地址,单击"浏览"按钮即可调入inte.net explorer进行浏览,此时,"向前"、"向后"、"关闭浏览窗口"命令钮转为可见,从而实现对浏览器的控制,单击"关闭浏览窗口"命令按钮可关闭当前打开的inte.net explorer窗口,此时窗口又还原为初始模样,可再次输入新的地址进行浏览。
三、 注意问题
1. 必须在最上层通用模块中定义inte.net explorer对象,并且将其定义为withevents类型以便响应由active x组件触发的事件;
2. 浏览时需用下述语句创建inte.net explorer对象实例,并设为可见:
set ieview = getobject("", "inte.netexplorer.application")
ieview.visible = true
退出时须消除该对象以释放内存,即
set ieview = nothing
否则会因大量占用系统资源导致系统不稳定。
3. 调用和控制inte.net explorer过程中会产生各种错误,如在浏览器历史记录为空时,执行"向前"、"向后"操作就会产生ole自动化错误,必须在"浏览"、"向前"、"向后"、"关闭浏览窗口"等命令按钮相应程序模块开始处加入错误捕获语句:
on error resume next
以检测和处理类似错误,上述程序在windows98、vb 5.0环境下调试通过。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器