PDA

Показать полную графическую версию : [решено] 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



Заранее благодарю

kaster
05-04-2010, 16:50
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

Creat0R
05-04-2010, 19:14
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
огромное спасибо! я нете координаты задал!!!!

Creat0R
06-04-2010, 23:45
Antoschka2, В названии темы не нужно писать «Треубуется помощь», и тем более «AutoIt», оно и так понятно :)

asdf8
07-04-2010, 00:00
Тут вам обрисуется область в которой вы ищите нужный пиксель. »

Меня терзают смутные сомнения.
мне кажется функция _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