VB 获取 Internet Explorer_Server 里面的内容

转载 2016年08月28日 17:01:40

http://blog.csdn.net/rztyfx/article/details/9499421

模块中的代码:

  1. Option Explicit  
  2. '  
  3. ' 要求:使用本模块时需要在工程中引用 Microsoft HTML Object Library。  
  4. '  
  5. Private Type GUID  
  6.     Data1 As Long  
  7.     Data2 As Integer  
  8.     Data3 As Integer  
  9.     Data4(0 To 7) As Byte  
  10. End Type  
  11. Private Declare Function GetClassName Lib "user32" _  
  12.     Alias "GetClassNameA" ( _  
  13.     ByVal hWND As Long, _  
  14.     ByVal lpClassName As String, _  
  15.     ByVal nMaxCount As LongAs Long  
  16. Private Declare Function EnumChildWindows Lib "user32" ( _  
  17.     ByVal hWndParent As Long, _  
  18.     ByVal lpEnumFunc As Long, _  
  19.     lParam As LongAs Long  
  20. Private Declare Function RegisterWindowMessage Lib "user32" _  
  21.     Alias "RegisterWindowMessageA" ( _  
  22.     ByVal lpString As StringAs Long  
  23. Private Declare Function SendMessageTimeout Lib "user32" _  
  24.     Alias "SendMessageTimeoutA" ( _  
  25.     ByVal hWND As Long, _  
  26.     ByVal msg As Long, _  
  27.     ByVal wParam As Long, _  
  28.     lParam As Any, _  
  29.     ByVal fuFlags As Long, _  
  30.     ByVal uTimeout As Long, _  
  31.     lpdwResult As LongAs Long  
  32. Private Const SMTO_ABORTIFHUNG = &H2  
  33. Private Declare Function ObjectFromLresult Lib "oleacc" ( _  
  34.     ByVal lResult As Long, _  
  35.     riid As GUID, _  
  36.     ByVal wParam As Long, _  
  37.     ppvObject As Any) As Long  
  38. Public Declare Function FindWindow Lib "user32" _  
  39.     Alias "FindWindowA" ( _  
  40.     ByVal lpClassName As String, _  
  41.     ByVal lpWindowName As StringAs Long  
  42. '  
  43. ' 函数:IEDOMFromhWnd。  
  44. '  
  45. ' 返回:一个 WebBrowser 窗口的 IHTMLDocument 对象接口。  
  46. '  
  47. ' hWnd 参数:WebBrowser 控件的句柄或 WebBrowser 控件所在窗口的句柄。  
  48. '  
  49. Public Function IEDOMFromhWnd(ByVal hWND As LongAs IHTMLDocument  
  50.     Dim IID_IHTMLDocument As GUID  
  51.     Dim hWndChild As Long  
  52.     Dim lRes As Long  
  53.     Dim lMsg As Long  
  54.     Dim hr As Long  
  55.     If hWND <> 0 Then  
  56.         If Not IsIEServerWindow(hWND) Then  
  57.             ' 查找一个 WebBrowser 控件。  
  58.             EnumChildWindows hWND, AddressOf EnumChildProc, hWND  
  59.         End If  
  60.         If hWND <> 0 Then  
  61.             ' 注册消息。  
  62.             lMsg = RegisterWindowMessage("WM_HTML_GETOBJECT")  
  63.             ' 获取对象的指针。  
  64.             Call SendMessageTimeout(hWND, lMsg, 0, 0, _  
  65.             SMTO_ABORTIFHUNG, 1000, lRes)  
  66.             If lRes Then  
  67.                 ' 初始化接口 ID。  
  68.                 With IID_IHTMLDocument  
  69.                     .Data1 = &H626FC520  
  70.                     .Data2 = &HA41E  
  71.                     .Data3 = &H11CF  
  72.                     .Data4(0) = &HA7  
  73.                     .Data4(1) = &H31  
  74.                     .Data4(2) = &H0  
  75.                     .Data4(3) = &HA0  
  76.                     .Data4(4) = &HC9  
  77.                     .Data4(5) = &H8  
  78.                     .Data4(6) = &H26  
  79.                     .Data4(7) = &H37  
  80.                 End With  
  81.                 ' 利用指针 lRes 获取 IHTMLDocument 对象。  
  82.                 hr = ObjectFromLresult(lRes, IID_IHTMLDocument, _  
  83. 0, IEDOMFromhWnd)  
  84.             End If  
  85.         End If  
  86.     End If  
  87. End Function  
  88. Private Function IsIEServerWindow(ByVal hWND As LongAs Boolean  
  89.     Dim lRes As Long  
  90.     Dim sClassName As String  
  91.     ' 初始化缓冲区大小。  
  92.     sClassName = String$(255, 0)  
  93.     ' 获取 hWnd 句柄拥有者的类名称。  
  94.     lRes = GetClassName(hWND, sClassName, Len(sClassName))  
  95.     sClassName = Left$(sClassName, lRes)  
  96.     IsIEServerWindow = StrComp(sClassName, _  
  97.             "Internet Explorer_Server", _  
  98.             vbTextCompare) = 0  
  99. End Function  
  100. Function EnumChildProc(ByVal hWND As Long, lParam As LongAs Long  
  101.     If IsIEServerWindow(hWND) Then  
  102.         lParam = hWND  
  103.     Else  
  104.         EnumChildProc = 1  
  105.     End If  
  106. End Function  

窗体中的代码:

  1. Option Explicit  
  2. Private Sub Command1_Click()  
  3.     Dim hWND As Long  
  4.     Dim s As String * 255  
  5.     Dim l As Long  
  6.     hWND = FindWindow("IMWindowClass", vbNullString)  
  7.     GETTEXT hWND  
  8. End Sub  
  9. Private Sub GETTEXT(hWND As Long)  
  10.     '创建一个 IHTMLDocument 对象。  
  11.     Dim objIES As New HTMLDocument  
  12.     Set objIES = IEDOMFromhWnd(hWND)                                            'hWnd 这个东西你肯定有 N 种办法得到。  
  13.     '应用。  
  14.     '例如下面是获得一个 WebBrowser 控件当前浏览网页的地址和该网页的 HTML 源码。  
  15.     Text1.Text = objIES.url & vbCrLf & vbCrLf & objIES.documentElement.innerHTML  
  16. End Sub  

关于查找其他进程的模态对话框句柄

 (2013-03-01 16:53:33)
  分类: 开发豆知识
当一个主程序弹出一个模态对话框时,可以分析出此模态对话框的父窗口是主程序窗口,似乎模态对话框是主程序的子窗口,但如果要查找模态对话框窗口时,此对话框应作为顶层窗口来看待,例如应该用Findwindow查找,而不是Findwindowex。原因不明……

Internet Explorer_Server内容获取

首先这里假设你已经获取到Internet Explorer_Server窗口的句柄,假设为hwndIE:HWND。 头文件: #include #include #include...

通过其他程序的Internet Explorer_Server句柄打开网页

CoInitialize(NULL);    IWebBrowser2* pWebBrowser2=NULL;  HRESULT hr;  // Explicitly load MSA...

开源小工具一:获取客户端内嵌IE控件(Internet Explorer_Server)的URL

做客户端开发的很多时候,我们需要查看别人的客户端里面嵌入的网页,查看里面的JS等等,于是就写了一个简单的工具来获取这些嵌入IE的客户端使用的地址。原理: 开启一个后台线程,不断获取当前鼠标所在位置的窗...
  • mfcing
  • mfcing
  • 2015年11月26日 20:31
  • 722

Windows Server2008开关机技巧,关闭internet explorer增强的安全配置,

取消登录时要按Ctrl+Alt+Delete组合键登录的方法   点桌面任务栏的“开始-->运行”在弹出的窗口中输入gpedit.msc 。   输入gpedit.msc后,点击确定即打开...
  • sunfor
  • sunfor
  • 2013年02月21日 17:49
  • 2888

Internet Explorer_Server 分析利器(下载)

近来有人找我帮忙搞IM的聊天记录获取,用Spy++大体一看敲定是IE控件,工欲善其事,必先利其器,于是在网上搜了几个工具,觉得不太符合我的需要,所以自己写了这么一个小工具,适合逆向分析人士用来专门分析...

如何在Windows Server 2012启用或关闭Internet Explorer增强的安全配置

在 Windows Sever 2012 中打开 IE 浏览器时,IE10 会出现【已启用 Internet Explorer 增强的安全配置】的提示信息。 在安全性等级中会设置以【高安全性】,如...

为了有利于保护安全性,Internet Explorer 已限制此网页运行可以访问计算机的脚本或 ActiveX控件。请单击这里获取选项

在dreamweaver的“代码”顶端你会发现并找到 http://www.w3.org/1999/xhtml" lang="en"> 这个后,在dtd">...
  • ken2002
  • ken2002
  • 2015年01月24日 20:25
  • 1767

VB 查询SQL SERVER数据库内容源码 工程下载

〓〓〓〓〓〓〓〓〓〓OpenSqlServer函数相关定义声明等 Start Public Conn As New ADODB.Connection Public OpenSqlOK As Boo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB 获取 Internet Explorer_Server 里面的内容
举报原因:
原因补充:

(最多只允许输入30个字)