Что нового

[Окна, Диалоги] Управление чужим обьектом Internet Explorer_Server

The Dream

Новичок
Сообщения
393
Репутация
3
Есть ф-ция (наткнулся на официальном форуме), которая извлекает указатель на обьект Internet Explorer_Server якобы в чужом окне по его хендлу. Подскажите пожалуйста почему тогда в данном примере не работает, то есть вот сама ф-ция с примером:

Код:
$oIE = _AttachEmbedded('RUBIK')
_IENavigate($oIE,'google.com')

Func _AttachEmbedded($s_string, $i_instance = 1)
	Local $iWinTitleMatchMode = Opt("WinTitleMatchMode")
	Opt("WinTitleMatchMode", 2)
	Local $h_result = ControlGetHandle($s_string, "", "Internet Explorer_Server" & $i_instance)
	Local $o_result = __IEControlGetObjFromHWND($h_result)
	Opt("WinTitleMatchMode", $iWinTitleMatchMode)
	Sleep(50)
	Return $o_result
EndFunc   ;==>_AttachEmbedded


И вот отдельная программа с обьектом:

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ie.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <Encoding.au3>
#include <GuiEdit.au3>
#include <File.au3>
#include <GDIPlus.au3>
#include <GUICtrlHyperLink.au3>
#include <ScreenCapture.au3>
#include <WinAPIEx.au3>
#include <APIConstants.au3>

Opt("GUIResizeMode", $GUI_DOCKALL)

_IEErrorHandlerRegister()

Global $iDeskHeight = @DesktopHeight -100; высота
Global $iDeskWidth = @DesktopWidth-100; ширина

Global $hGui = GUICreate("RUBIK", $iDeskWidth, $iDeskHeight, 50,20, $WS_SIZEBOX + $WS_SYSMENU)
Global $oIE = _IECreateEmbedded()
Global $iIE = GUICtrlCreateObj($oIE,0,0,$iDeskWidth, $iDeskHeight-32)
Global $DATA, $sUrlLast
$iProgress = GUICtrlCreateProgress(0, $iDeskHeight-32, $iDeskWidth-2, 12)
GUICtrlSetResizing($iProgress, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($iIE, $GUI_DOCKBORDERS)

ObjEvent($oIE, 'IEEvent_', 'DWebBrowserEvents2')

GUISetState(@SW_SHOW, $hGui)


While 1

   $sUrl = _IEPropertyGet($oIE, 'locationurl')
   if $sUrl <> $sUrlLast Then
   WinSetTitle($hGui, '', $sUrl)
   $sUrlLast = $sUrl
   EndIf

	Sleep(100)
WEnd


Func IEEvent_ProgressChange($i_Progress, $i_ProgressMax)
	If $i_ProgressMax <= 0 Then Return
	$iPercent = ($i_Progress * 100) / $i_ProgressMax
	GUICtrlSetData($iProgress, $iPercent)
	If $iPercent >= 100 Then GUICtrlSetData($iProgress, 0)

EndFunc   ;==>IEEvent_ProgressChange


Но управление над объектом получить не удается. Или я что-то не так делаю? :whistle:

Заранее спасибо.
 
Верх