利用VB实现对IE 的调用与控制

2012/10/31 7:05:00  人气 215    怀旧国机论坛  
学编辑技术就到┆◆◇ 繁花殿☆★┆论坛

随着网络应用的不断扩展,采用
html语言编写的文档越来越多,如
何在vb程序中实现对html文档的浏
览是一个需要解决的问题。本文以
一个实例说明了在vb中调用和控制
internet explorer的方法。
  一、 编程准备
  vb通过ole自动化技术创建和
控制internet explorer对象的实例,
因此,在新建一个工程后需要加入
microsoft internet 控制的参考,方
法是打开visual basic 的project下拉
菜单中的reference…选项,单击
browse…按钮,在windows的
system目录下找到shdocvw.dll并
选中它,它是internet explorer的类
库。
  二、 实现方法
  在窗体form1中添加表1所示的
控件。 控件类型 控件名称 控件内容
label lable1 地址:
text text1 (空)
* cmdview 浏览
* cmdforward 向前
* cmdbackward 向后
* cmdcloseview 关闭浏览
窗口
* cmdexit 退出
  对上述窗体添加如下代码即可
实现对internet explorer的调用与控
制,
  dim withevents ieview as
internetexplorer
  ‘在通用模块中定义internet
explorer对象
  private sub form_load()
  cmdforward.visible = false
  cmdbackward.visible = false
  cmdcloseview.visible = false
  ‘窗体调入时隐藏internet
explorer控制按钮
  end sub
  private sub cmdview_click()
  dim txtaddress as string
  on error resume next ‘设置错
误陷阱
  set ieview = getobject(““,
“internetexplorer.application“)
  ieview.visible = true
  ‘创建internet 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地
址,单击“浏览“按钮即可调入
internet explorer进行浏览,此
时,“向前“、“向后“、“关闭浏览窗
口“命令钮转为可见,从而实现对浏
览器的控制,单击“关闭浏览窗口“命
令按钮可关闭当前打开的internet
explorer窗口,此时窗口又还原为初
始模样,可再次输入新的地址进行
浏览。
  三、 注意问题
  1. 必须在最上层通用模块中定
义internet explorer对象,并且将其
定义为withevents类型以便响应由
active x组件触发的事件;
  2. 浏览时需用下述语句创建
internet explorer对象实例,并设为
可见:
  set ieview = getobject(““,
“internetexplorer.application“)
  ieview.visible = true
  退出时须消除该对象以释放内
存,即
  set ieview = nothing
  否则会因大量占用系统资源导
致系统不稳定。
  3. 调用和控制internet explorer
过程中会产生各种错误,如在浏览
器历史记录为空时,执行“向
前“、“向后“操作就会产生ole自动化
错误,必须在“浏览“、“向前“、“向
后“、“关闭浏览窗口“等命令按钮相
应程序模块开始处加入错误捕获语
句:
  on error resume next
  以检测和处理类似错误,上述
程序在windows98、vb 5.0环境下调
试通过。
┆◆繁花殿☆┆顶帖组№真爱(ID98458)文字续贴10-31 07:12

发表回复

   


  通知楼主

沙发

┆◆繁花殿☆┆顶帖组丶筱富 ..10-31 07:20
<br/>钓鱼岛是中国的,苍井空才是全世界的!

回复只看TA