Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames? / 3 сообщений из 3, страница 1 из 1
22.06.2007, 04:41
    #34612500
eugene2009
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames?
Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames?


Dim lHandle As Long
lHandle = GetHandle(ie)
MsgBox lHandle

module
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private lngWebHandle As Long



Public Function GetHandle(ByVal WebControl As WebBrowser) As Long
lngWebHandle = 0
EnumChildWindows WebControl.Parent.hWnd, AddressOf EnumChildProc, ByVal 0&
GetHandle = lngWebHandle
End Function


Private Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
Dim lngReturnValue As Long, strClassName As String
strClassName = Space(256)
lngReturnValue = GetClassName(hWnd, strClassName, 256)
If Left$(strClassName, lngReturnValue) = "Internet Explorer_Server" Then
lngWebHandle = hWnd
End If
EnumChildProc = 1
End Function
...
Рейтинг: 0 / 0
22.06.2007, 06:42
    #34612536
cabcem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames?
Через DOM. Объекты внутри окна браузера не имеют HWND. Запустите spyxx - и убедитесь.
...
Рейтинг: 0 / 0
22.06.2007, 10:52
    #34612869
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Option Explicit
Private Type UUID
   Data1 As Long
   Data2 As Integer
   Data3 As Integer
   Data4( 0  To  7 ) As Byte
End Type

Private Const SMTO_ABORTIFHUNG = &H2
Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal 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, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
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 ObjectFromLresult Lib "oleacc" (ByVal lResult As Long, riid As UUID, ByVal wParam As Long, ppvObject As Any) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long

Private wnds As Collection

Public 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
    lMsg = RegisterWindowMessage("WM_HTML_GETOBJECT")
    SendMessageTimeout GetUrlWindow(hwnd, , "Internet Explorer_Server"), lMsg,  0 ,  0 , SMTO_ABORTIFHUNG,  1000 , lRes
    If lRes Then
        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
        hr = ObjectFromLresult(lRes, IID_IHTMLDocument,  0 , IEDOMFromhWnd)
    End If
End Function
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нашёл код обнаруживающий HWND окна броузер контрола, а как обнаружить его iframes, frames? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]