Доброй ночи. Передо мной стоит задача автоматизировать процесс на 4х разных ПК.
Задача следующего типа: зайди на сайт, пролистать немного вниз, нажать на заданные координаты, используя функции mousemove и mouseclick (без _IEAction).
На всех 4х ПК стоит одинаковая версия Internet Explorer (восьмая).
В чем загвоздка: при пролистовании через команды Send или Mousewheel в больших количествах на 2х ПК страничка не доматывается на 5-7 пикселей, и клик происходит не в том месте, на других 2х все нормально.
Вопрос: как проматать вниз на строго определенное количество пикселей, чтобы не сбивалась координатная сетка?
Вот код программы:
Задача следующего типа: зайди на сайт, пролистать немного вниз, нажать на заданные координаты, используя функции mousemove и mouseclick (без _IEAction).
На всех 4х ПК стоит одинаковая версия Internet Explorer (восьмая).
В чем загвоздка: при пролистовании через команды Send или Mousewheel в больших количествах на 2х ПК страничка не доматывается на 5-7 пикселей, и клик происходит не в том месте, на других 2х все нормально.
Вопрос: как проматать вниз на строго определенное количество пикселей, чтобы не сбивалась координатная сетка?
Вот код программы:
Код:
#include <IE.au3>
$iW = 1024
$iH = 768
$oIE = ObjCreate("Shell.Explorer.2")
$sUrl = 'http://medicine-2012.blogspot.com/'
$Brouser = GUICreate("Brouser", $iW-40, $iH-199, 0, 0, BitOR($WS_MINIMIZEBOX,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS),$WS_EX_COMPOSITED)
GUICtrlSetState($Brouser, @SW_MAXIMIZE)
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, $iW-39, $iH-200)
GUISetState()
_IENavigate($oIE, "http://medicine-2012.blogspot.com/")
_IELoadWait($oIE)
_WinWaitActivate("Brouser","")
ControlFocus("","", "[CLASS:Internet Explorer_Server; INSTANCE:1]")
; в этом месте предпринимались попытки перелистывания окна вниз, через send и mousewheel, но смещение окна было разным
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd