- Сообщения
- 3,999
- Репутация
- 967
На форуме уже поднимались темы по поводу возможности работать с Internet Explorer Server (IES) который используют desktop-приложения.
Вот функция, которая позволяет это сделать.
Функция:
Пример: Перед запуском примера запустите "Центр справки и поддержки"
Вот функция, которая позволяет это сделать.
Функция:
Код:
; #FUNCTION# ====================================================================================================================
; Name...........: _IEGetObjServer
; Description....: Returns handle a COM Object Window reference to an embebedded Webbrowser control
; Syntax.........: _IEGetObjServer($aECW)
; Parameters.....: $aECW - The 2D array of the handles to the child windows and classes for the specified parent window.
; example: $aECW = _WinAPI_EnumChildWindows($hWnd)
;
; Return values..: Success - Returns DOM Window object.
; Failure - 0 and sets the @error flag to:
; 1 - Internet Explorer_Server not found
; 2 - $aECW parameter not array
; Author.........: Garrett
; Modified.......:
; Remarks........: Used in combination with WinAPIEx.au3 and IE.au3. Tested Windows XP SP2 only
; Related........:
; Link...........: WinAPIEx.au3 - http://autoit-script.ru/index.php?topic=47.msg193#msg193
; IE.au3 - Standard delivery Autoit
; Example........: Yes
; ===============================================================================================================================
Func _IEGetObjServer($a_ECW)
Local $o_IES
If Not IsArray($a_ECW) Then _
Return SetError(2, 0, 0)
For $i = 1 To $a_ECW[0][0]
If $a_ECW[$i][1] = "Internet Explorer_Server" Then
$o_IES = __IEControlGetObjFromHWND($a_ECW[$i][0])
If IsObj($o_IES)Then
Return SetError(0, 0, $o_IES)
EndIf
EndIf
Next
Return SetError(1, 0, 0)
EndFunc ;==>_IEGetObjServer
Пример: Перед запуском примера запустите "Центр справки и поддержки"
Код:
#Include <WinAPIEx.au3>
#include <IE.au3>
WinActivate("Центр справки и поддержки")
$hWnd = WinGetHandle("Центр справки и поддержки")
$aECW = _WinAPI_EnumChildWindows($hWnd)
$oIE = _IEGetObjServer($aECW)
If @error Then Exit
; Далее работаем как с обычным объектом.
; Все функции из IE.au3 UDF будут благополучно работать :)
ConsoleWrite(_IEDocReadHTML($oIE))
Func _IEGetObjServer($a_ECW)
Local $o_IES
If Not IsArray($a_ECW) Then _
Return SetError(2, 0, 0)
For $i = 1 To $a_ECW[0][0]
If $a_ECW[$i][1] = "Internet Explorer_Server" Then
$o_IES = __IEControlGetObjFromHWND($a_ECW[$i][0])
If IsObj($o_IES)Then
Return SetError(0, 0, $o_IES)
EndIf
EndIf
Next
Return SetError(1, 0, 0)
EndFunc ;==>_IEGetObjServer