这个代码出了什么问题

po4920826 2008-07-07 08:40:00
已经添加了microsoft html object的引用(com)



Public Shared Function GetRegCodePic(ByVal wbMail As WebBrowser, ByVal ImgName As String) As Image

Dim doc As HtmlDocument = DirectCast(wbMail.Document.DomDocument, HtmlDocument)
Dim body As MSHTML.HTMLBody = DirectCast(doc.Body, MSHTML.HTMLBody)
Dim rang As MSHTML.IHTMLControlRange = DirectCast(body.createControlRange(), MSHTML.IHTMLControlRange)
Dim Img As MSHTML.IHTMLControlElement
Img = DirectCast(wbMail.Document.All(ImgName).DomElement, MSHTML.IHTMLControlElement)

rang.add(Img)
rang.execCommand("Copy ", False, Nothing)
Dim RegImg As Image = Clipboard.GetImage()
'Clipboard.Clear()
Return RegImg

End Function

----------------------------------------
当执行到
DirectCast(doc.Body, MSHTML.HTMLBody)
提示无法转换

这个代码是截取网页验证码的
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
po4920826 2008-07-09
  • 打赏
  • 举报
回复
重装了系统和.net3.5还有vb2008
错误没了

我怀疑是我的.net版本混乱造成的
mzhao 2008-07-08
  • 打赏
  • 举报
回复
doc.Body是.Net实例(其实也在做封装类的工作,但在Windows.Forms.dll中有.Net实际代码),
MSHTML.HTMLBody是COM封装类,无法直接转换。

要么从头就用MSHTML的控件,要么不要用MSHTML。
只在此山中 2008-07-08
  • 打赏
  • 举报
回复
添加引用Microsoft.mshtml
po4920826 2008-07-08
  • 打赏
  • 举报
回复
早添加过了

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧