Что нового

[Сеть, интернет] как визуально отобразить функцию _IELoadWait

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Подскажить возможно ли какимто образом в своей GUI в которой окно IE создается с помощью _IECreateEmbedded() сделать индикатор загрузки страниц. где то давно, что то похожее находил на форуме а сейчас не магу найти, подскажите такое вообще возможно или нет заранее благодарю за помощь
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
general66,
Код:
ObjEvent()
Смотрите первый пример.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
madmasles [?]
Смотрите первый пример.

извиняюсь за нубство не могли бы вы показать на примере как это сделать а то для меня пока еще не понятно куда и как это использовать, получается не то что надо :(

Код:
#include <IE.au3>
; ObjEvent example
$Form1 = GUICreate('', 594, 495, 150, 20)
$oIE = _IECreateEmbedded()
$GUIActiveX = GUICtrlCreateObj($oIE, 7, 42, 252, 406)      ; Create Internet Explorer application
$ButtonAutoBotLogON = GUICtrlCreateButton('Вход', 448, 39, 43, 22)
GUISetState(@SW_SHOW)
Global $sUrl			= 'http://ya.ru'
While 1
	$Msg = GUIGetMsg()
Select
	Case $Msg = $ButtonAutoBotLogON
		_IENavigate($oIE, $sUrl)
	EndSelect

WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
general66,
Примерно так.
Код:
#include <IE.au3>
#include <GUIConstantsEx.au3>

Global $sUrl = 'http://autoit-script.ru/'

$hForm = GUICreate('', 600, 550)
$oIE = _IECreateEmbedded()
$oObject = ObjEvent($oIE, 'IEEvent_', 'DWebBrowserEvents2')

$nGUIActiveX = GUICtrlCreateObj($oIE, 5, 5, 590, 500) ; Create Internet Explorer application
$nButton = GUICtrlCreateButton('Go', 5, 520, 30, 20)
$nProgress = GUICtrlCreateProgress(40, 520, 555, 20)
;GUICtrlSetState(-1, $GUI_HIDE)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			;GUICtrlSetState(-1, $GUI_SHOW)
			_IENavigate($oIE, $sUrl)
			;GUICtrlSetState(-1, $GUI_HIDE)
	EndSwitch
WEnd

Func IEEvent_ProgressChange($i_Progress, $i_ProgressMax)
	ConsoleWrite($i_Progress & @TAB & $i_ProgressMax & @LF)
	If $i_ProgressMax <= 0 Then Return
	GUICtrlSetData($nProgress, ($i_Progress * 100) / $i_ProgressMax)
EndFunc   ;==>IEEvent_ProgressChange
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
madmasles [?]

не подскажите а почему в моем варианте срока прогресса после того как отработает не убирается

Код:
#include <IE.au3>
#include <GUIConstantsEx.au3>

Global $sUrl = 'http://autoit-script.ru/'

$hForm = GUICreate('', 600, 550)
$oIE = _IECreateEmbedded()
$oObject = ObjEvent($oIE, 'IEEvent_', 'DWebBrowserEvents2')

$Tab1 = GUICtrlCreateTab(2, 2, 590, 451)
$Tab = GUICtrlCreateTabItem('tab')
$GUIActiveX = GUICtrlCreateObj($oIE, 7, 42, 500, 406)
$nButton = GUICtrlCreateButton('Go', 5, 520, 30, 20)
$nProgress = GUICtrlCreateProgress(40, 520, 555, 20)
;GUICtrlSetState(-1, $GUI_HIDE)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButton
            ;GUICtrlSetState(-1, $GUI_SHOW)
            _IENavigate($oIE, $sUrl)
            ;GUICtrlSetState(-1, $GUI_HIDE)
    EndSwitch
WEnd

Func IEEvent_ProgressChange($i_Progress, $i_ProgressMax)
    ConsoleWrite($i_Progress & @TAB & $i_ProgressMax & @LF)
    If $i_ProgressMax <= 0 Then Return
    GUICtrlSetData($nProgress, ($i_Progress * 100) / $i_ProgressMax)
EndFunc   ;==>IEEvent_ProgressChange
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
general66,
Может, как-то так тогда?
Код:
#include <IE.au3>
#include <GUIConstantsEx.au3>

Global $sUrl = 'http://autoit-script.ru/', $iPercentOld

$hForm = GUICreate('', 600, 550)
$oIE = _IECreateEmbedded()

$Tab1 = GUICtrlCreateTab(2, 2, 590, 451)
$Tab = GUICtrlCreateTabItem('tab')
$GUIActiveX = GUICtrlCreateObj($oIE, 7, 42, 500, 406)
$nButton = GUICtrlCreateButton('Go', 5, 520, 30, 20)
$nProgress = GUICtrlCreateProgress(40, 520, 555, 20)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			$iPercentOld = 0
			$oObject = ObjEvent($oIE, 'IEEvent_', 'DWebBrowserEvents2')
			_IENavigate($oIE, $sUrl)
			$oObject = 0
			$iPercentOld = 0
			GUICtrlSetData($nProgress, $iPercentOld)
			ConsoleWrite('All' & @LF)
	EndSwitch
WEnd

Func IEEvent_ProgressChange($i_Progress, $i_ProgressMax)
	Local $i_Percent
	ConsoleWrite($i_Progress & @TAB & $i_ProgressMax & @LF)
	If $i_ProgressMax <= 0 Then Return
	If $i_Progress < 0 Then Return
	$i_Percent = ($i_Progress * 100) / $i_ProgressMax
	If $i_Percent > 100 Then $i_Percent = 100
	If $iPercentOld < $i_Percent Then
		$iPercentOld = $i_Percent
		ConsoleWrite('% :' & $iPercentOld & @LF)
		GUICtrlSetData($nProgress, $iPercentOld)
	EndIf
EndFunc   ;==>IEEvent_ProgressChange
 

rollin

Новичок
Сообщения
15
Репутация
1
А почему вы отбрасываете отрицательные значения $i_Progress?
Ведь на http://msdn.microsoft.com/en-us/library/cc136550(v=vs.85).aspx пишут, что значение -1 это конец загрузки.
 
Верх