VB 获取 Internet Explorer_Server 里面的内容
- 博客分类:
- 技术杂绘
VB 获取 Internet Explorer_Server 里面的内容
2009年08月22日
最近几天,在群里有很多朋友询问如何通过“Internet Explorer_Server”类控件的句柄得到网页内容的问题。今天有时间,在网上搜索了一下,综合多方资料,我写了个模块用以解决上述问题。
呵呵,请看过的朋友回个贴哦,增加一下我空间的人气。^-^哈哈,不多说了,言归正传,请看代码:
'
' 模块代码:
'
Option Explicit'
' 要求:使用本模块时需要在工程中引用 Microsoft HTML Object Library。
'Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare Function GetClassName Lib "user32" _
Alias "GetClassNameA" ( _
ByVal hWnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long
Private Declare Function EnumChildWindows Lib "user32" ( _
ByVal hWndParent As Long, _
ByVal lpEnumFunc As Long, _
lParam As Long) As Long
Private Declare Function RegisterWindowMessage Lib "user32" _
Alias "RegisterWindowMessageA" ( _
ByVal lpString As String) As Long
Private Declare Function SendMessageTimeout Lib "user32" _
Alias "SendMessageTimeoutA" ( _
ByVal hWnd As Long, _
ByVal msg As Long, _
ByVal wParam As Long, _
lParam As Any, _
ByVal fuFlags As Long, _
ByVal uTimeout As Long, _
lpdwResult As Long) As Long
Private Const SMTO_ABORTIFHUNG = &H2
Private Declare Function ObjectFromLresult Lib "oleacc" ( _
ByVal lResult As Long, _
riid As UUID, _
ByVal wParam As Long, _
ppvObject As Any) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long'
' 函数:IEDOMFromhWnd。
'
' 返回:一个 WebBrowser 窗口的 IHTMLDocument 对象接口。
'
' hWnd 参数:WebBrowser 控件的句柄或 WebBrowser 控件所在窗口的句柄。
'
Function IEDOMFromhWnd(ByVal hWnd As Long) As IHTMLDocument
Dim IID_IHTMLDocument As UUID
Dim hWndChild As Long
Dim lRes As Long
Dim lMsg As Long
Dim hr As Long If hWnd 0 Then
If Not IsIEServerWindow(hWnd) Then
' 查找一个 WebBrowser 控件。
EnumChildWindows hWnd, AddressOf EnumChildProc, hWnd End If
If hWnd 0 Then
' 注册消息。
lMsg = RegisterWindowMessage("WM_HTML_GETOBJECT") ' 获取对象的指针。
Call SendMessageTimeout(hWnd, lMsg, 0, 0, _
SMTO_ABORTIFHUNG, 1000, lRes) If lRes Then
' 初始化接口 ID。
With IID_IHTMLDocument
.Data1 = &H626FC520
.Data2 = &HA41E
.Data3 = &H11CF
.Data4(0) = &HA7
.Data4(1) = &H31
.Data4(2) = &H0
.Data4(3) = &HA0
.Data4(4) = &HC9
.Data4(5) = &H8
.Data4(6) = &H26
.Data4(7) = &H37
End With ' 利用指针 lRes 获取 IHTMLDocument 对象。
hr = ObjectFromLresult(lRes, IID_IHTMLDocument, _
0, IEDOMFromhWnd) End If
End If
End If
End Function
Private Function IsIEServerWindow(ByVal hWnd As Long) As Boolean
Dim lRes As Long
Dim sClassName As String ' 初始化缓冲区大小。
sClassName = String$(255, 0) ' 获取 hWnd 句柄拥有者的类名称。
lRes = GetClassName(hWnd, sClassName, Len(sClassName))
sClassName = Left$(sClassName, lRes) IsIEServerWindow = StrComp(sClassName, _
"Internet Explorer_Server", _
vbTextCompare) = 0End Function
Function EnumChildProc(ByVal hWnd As Long, lParam As Long) As Long
If IsIEServerWindow(hWnd) Then
lParam = hWnd
Else
EnumChildProc = 1
End IfEnd Function
'
' 举例:
'
' 使用时先创建一个 IHTMLDocument 对象。
'
' Dim objIES As New HTMLDocument
'
' Set objIES = IEDOMFromhWnd(hWnd)
'
' 这样 objIES 就能使用了。
'
'
' 窗体代码:
Option Explicit
Private Sub Form_Load()
'创建一个 IHTMLDocument 对象。
Dim objIES As New HTMLDocument
Set objIES = IEDOMFromhWnd(hWnd) 'hWnd 这个东西你肯定有 N 种办法得到。 '应用。
'例如下面是获得一个 WebBrowser 控件当前浏览网页的地址和该网页的 HTML 源码。
Text1.Text = objIES.url & vbCrLf & vbCrLf & objIES.documentElement.innerHTML
End Sub
发表评论
-
Programming in Emacs Lisp笔记(八)剪切和存储文本
2012-01-20 02:47 882Programming in Emacs Lisp笔记(八)剪 ... -
J2ME游戏开发笔记整编版
2012-01-20 02:47 831J2ME游戏开发笔记整编版 ... -
【详解】如何编写Linux下Nand Flash驱动 1/2
2012-01-20 02:47 1368【详解】如何编写Linux ... -
EXT2文件系统、虚拟文件系统、proc文件系统
2012-01-20 02:47 763EXT2文件系统、虚拟文件系统、proc文件系统 2010年 ... -
编程珠玑番外篇-K. Plan 9 的故事(修订版)
2012-01-20 02:47 815编程珠玑番外篇-K. Plan 9 ... -
映像劫持
2012-01-17 03:10 745映像劫持 2011年05月20日 ... -
C语言期末考试题
2012-01-17 03:10 629C语言期末考试题 2010年06月17日 一 ... -
选择题
2012-01-17 03:10 786选择题 2011年10月20日 1、根据加工零件图样选定 ... -
c语言(1)考试题目
2012-01-17 03:10 950c语言(1)考试题目 2010年06月17日 一、 ... -
C语言3
2012-01-17 03:10 836C语言3 2011年01月17日 24.有以下程序 ... -
VB钓鱼
2012-01-16 01:42 781VB钓鱼 2010年04月08日 Private Sub ... -
VB操作网页元素
2012-01-16 01:42 979VB操作网页元素 2010年01月23日 用webbro ... -
IE浏览器交互
2012-01-16 01:41 751IE浏览器交互 2010年12月11日 VB与――自动 ... -
VB读取网站超链接!
2012-01-16 01:41 795VB读取网站超链接! 2011年01月23日 Priva ... -
java JNDI
2012-01-11 01:31 642java JNDI 2011年09月01日 数据库连接 ... -
oracle一些基本的sql语句-alex-iteye技术网站
2012-01-11 01:30 545oracle一些基本的sql语句-alex-iteye技术网站 ... -
ExtJs combobox 自定义过滤-模糊过滤
2012-01-11 01:30 1095ExtJs combobox 自定义过滤-模糊过滤 2011 ... -
mysql导入导出命令-java 初学者-iteye技术网站
2012-01-11 01:30 520mysql导入导出命令-java 初学者-iteye技术网站 ... -
List-LinkedList- 源代码 研究
2012-01-11 01:30 544List-LinkedList- 源代码 研究 2011年0 ...
相关推荐
正常的应该有3层句柄树(Shell Embedding》Shell DocObject View》Internet Explorer_Server),结果他只有Shell Embedding。 所以WebBrowser1.Navigate "https://www.baidu.com"就显示不出来了。可能和VB6的包装...
◆ 188.htm 使用vb获取网上邻居里的计算机名 ◆ 189.htm 使用VB建立Web Server ◆ 190.htm 使用Visual Basic开发通讯软件 ◆ 191.htm 使用资源工具包执行本地和远程重新启动 ◆ 192.htm ...
Internet Explorer and Netscape, but they also detect devices such as Palm Pilots and cell phones and generate appropriate HTML accordingly. 153_VBnet_TOC 8/16/01 1:13 PM Page xxiii xxiv Contents How ...
chatclnt.zip Client side of an internet chat program<END><br>9 , chatserv.zip Server side of an internet chat program<END><br>10 , hlink.zip Is a control that you can use to link your ...
All users must have MSXML.dll version 3.0, and Internet Explorer 5.5. <END><br>47,DataCntl.zip Simple application that shows how to use the Data Control to connect to the Biblio.mdb database and ...
It can post messages and recieve messages through the internet.<END><br>8 , optiondemo.zip This example demonstrates how to create realistic Option Buttons in Visual Basic.<END><br>9 , mencrypt....
VBScript大教程,Visual Basic 家族的最新成员,它将灵活的 Script 应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 Script 和 Microsoft Internet Information Server 中的 Web 服务器 ...
array.zip A simple program that shows how a two-dimensional array works within a VB program.<END><br>70,Bubblesort.zip A simple Bubble Sort code that shows how the program works within a VB ...
TAL Bar Code ActiveX控件 向Access, VB, Web pages, ... 提供大量的运用实例:Access, Visual Basic, MS and Borland C++, Delphi, Excel, Word, Internet Explorer, CGI/Perl 和 Active Server Page (ASP)等。
SoftX HTTP Debugger works with all popular web browsers (Internet Explorer, Mozilla FireFox, Opera, etc) and their plugins. Software developers can use it to view and analyze the ...
p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...
07.zip Handling VB strings (as part of an array of UDT) VB的串句柄(5KB)<END><br>8,08.zip Class for Dynamic DLL Loading 动态装入DLL的一个类(6KB)<END><br>9,pop3.zip CPop3Connection - an ...
而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...
1.5.4 server explorer 54 1.5.5 在visual studio 2010中记录和使用宏 55 1.5.6 类图 57 1.5.7 应用程序生命周期管理 58 1.5.8 性能工具 60 1.6 小结 62 第2章 对象和visual basic 63 2.1 面向对象的...