Показать полную графическую версию : [решено] PixelSearch - нажатие в найденной точке
Antoschka2
05-04-2010, 16:38
Всем добрыи день. я как-то немного запутолся в своём скрипте. хотя я неочень понимаю в pixelsearch.
Суть скрипта такова. в задонном прямоугольнике должен скрипт наити точку задонного цвета. после всего переити мышкои на эту точку и нажать левои кнопкои. я незнаю, возможно я неправильно понял перевод ,left,top,right,bottom как зафиксировать прямоугольник.
Вот что получилось:
WinWaitActive("www.---.de - Windows Internet Explorer")
sleep(3000)
$Pos = PixelSearch( 329, 340, 380, 423, 0x689CFE,)
if IsArray($Pos) Then
MouseMove($Pos[0],$Pos[1],0)
MouseClick("left")
EndIf
Заранее благодарю
Antoschka2, и что происходит в процессе выполнения скрипта?
я немного укоротил скрипт до такого
WinWaitActive("www.---.de - Windows Internet Explorer")
sleep(3000)
$Pos = PixelSearch(329, 340, 380, 423, 0x689CFE)
if IsArray($Pos) Then MouseClick("left", $Pos[0], $Pos[1])
Antoschka2
05-04-2010, 16:53
Скрипт без ошибок начинает работать но ничего так сказать не делает и потом просто выключаетса. сеичас попробую твою версию
совершенно ничего не происходит. у меня кстате виндовс 7 может из за этого? Либо я и в правду не понял как определят координаты для pixelsearch
Antoschka2,
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):
В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема).
Переименуйте пожалуйста тему.
HORRIBLE
05-04-2010, 19:32
Скрипт без ошибок начинает работать но ничего так сказать не делает и потом просто выключаетса. сеичас попробую твою версию
совершенно ничего не происходит »
Таки да, он у вас 1 раз поищет заданный цвет, в указанной области и все. Найдет если, то кликнет, если нет закончит работу.
А вам не подойдут функции работы с IE ?
Antoschka2
06-04-2010, 00:20
Вот именно при тесте ненаходит этот цвет хотя он там есть. я и другои цвет подставлял, всёравно нехочет. может кто подскажет как правильно работает этот прямоугольник. может я туда нетакие координаты вставил
HORRIBLE
06-04-2010, 12:43
может я туда нетакие координаты вставил »
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
WinWaitActive("www.---.de - Windows Internet Explorer")
sleep(3000)
_Area(329, 340, 380, 423)
MsgBox(0,"","Чтобы увидеть искомую область")
sleep(1000)
$Pos = PixelSearch(329, 340, 380, 423, 0x689CFE)
if IsArray($Pos) Then MouseClick("left", $Pos[0], $Pos[1])
Func _Area($iLeft, $iTop, $iRght, $iBottom, $iTrans=100)
Local $hWin = GUICreate('Win', $iTop, $iBottom, $iLeft, $iBottom, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW, $WS_EX_TRANSPARENT))
WinSetTrans($hWin, '', $iTrans)
GUISetBkColor(0x0000e, $hWin)
GUISetState(@SW_SHOW, $hWin)
EndFunc
Тут вам обрисуется область в которой вы ищите нужный пиксель.
Antoschka2
06-04-2010, 23:16
огромное спасибо! я нете координаты задал!!!!
Antoschka2, В названии темы не нужно писать «Треубуется помощь», и тем более «AutoIt», оно и так понятно :)
Тут вам обрисуется область в которой вы ищите нужный пиксель. »
Меня терзают смутные сомнения.
мне кажется функция _Area, чтоб правильно показывать нужную область, в данном случае должна выглядеть так:
Func _Area($iLeft, $iTop, $iRght, $iBottom, $iTrans=100)
Local $tmp
If $iRght<$iLeft Then
$tmp = $iRght
$iRght = $iLeft
$iLeft = $tmp
EndIf
If $iTop>$iBottom Then
$tmp = $iTop
$iTop = $iBottom
$iBottom = $tmp
EndIf
Local $hWin = GUICreate('Win', $iRght-$iLeft, $iBottom-$iTop, $iLeft, $iTop, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW, $WS_EX_TRANSPARENT))
WinSetTrans($hWin, '', $iTrans)
GUISetBkColor(0x0000e, $hWin)
GUISetState(@SW_SHOW, $hWin)
EndFunc
Поправьте, если не прав.
HORRIBLE
07-04-2010, 11:44
asdf8, эээ ну да вы правы!
Я в своем примере все, что можно, перепутал......мрак.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC