Что нового

[autoit] поиск пикселя определённого цвета относительно координат окна - как?

Laguro

Новичок
Сообщения
5
Репутация
0
(по координатам окна(т.е. за начало системы координат принимается правый верхний угол окна)). как это реализовать?
т.е. я хочу сделать вход в лаунчер (нажатие на кнопку, выделение поля для ввода пароля и ввод пароля из файла) и что б он работал на пк с любым разрешением.. собственно, для своего разрешения я уже всё сделал и всё работает отлично.


Код:
#RequireAdmin

$file_read=FileOpen("C:\pas\pas.txt",0)
$line = FileReadLine($file_read)

Run ("D:\Games\Riot Games\League of Legends\lol.launcher.exe")
WinWaitActive ("LoL Patcher")

$color = 13994256

$i=0
While $i=0

    dim $pos[2]
    dim $x, $y
    $pos = MouseGetPos ()
    $x = $pos[0]
    $y = $pos[1]

    $var = PixelGetColor(631,89)
    if $var = $color Then
       MouseClick ("left", 631, 89, 1, 0 )
	   MouseMove ($x, $y, 0)
	   $i=1
    EndIf
    Sleep(10)

 WEnd

WinWaitActive ("Клиент PvP.net")

$color = 6974058
$i=0

 While $i=0

    dim $pos[2]
    dim $x, $y
    $pos = MouseGetPos ()
    $x = $pos[0]
    $y = $pos[1]

    $var = PixelGetColor(403, 389)
    if $var = $color Then
       MouseClick ("left", 236, 351, 1, 0 )
	   Send($line)
	   MouseMove ($x, $y, 0)
	   Sleep(100)
	   MouseClick ("left", 442, 392, 1, 0 )
	   MouseMove ($x, $y, 0)
	   $i=1
    EndIf
    Sleep(100)

 WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Re:
Код:
действия относительно окна[/b]

[warn]За нарушение правил форума ([url=http://autoit-script.ru/index.php?action=rules#b.5]пункт Б.5[/url]):[br][quote]Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)[br]Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.[/quote][br]Данные правила могут пополняться локальными правилами раздела.[br][url=http://autoit-script.ru/index.php?topic=1734.0]Как правильно называть темы[/url][br][br]"[autoit] действия относительно окна" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.[br][br][i]С уважением, ваш Глобальный модератор.[/i][/warn]

[b][color=#777777]Laguro[/color][/b]  [url=http://autoit-script.ru/index.php?topic=20481.msg121107#msg121107][?][/url]
[quote]и ещё вопрос..[/quote]

[warn]За нарушение общих правил ([url=http://autoit-script.ru/index.php?action=rules#c.4]пункт В.4[/url]):[br][quote]Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.[/quote][br][br][i]С уважением, ваш Глобальный модератор.[/i][/warn]
 

knocker

Новичок
Сообщения
4
Репутация
1
Попробуй вместо функции
Код:
PixelGetColor
использовать
Код:
PixelChecksum
В ней есть флаг, позволяющий работать не с координатами рабочего стола, а с внутренними координатами окна.

И можно слегка изменить твой обработчик ожидания окна:
Код:
Do
		Sleep(100)
	Until PixelChecksum(190, 90, 209, 100, 1, $hWnd) = 3832359332;Здесь ставятся координаты проверяемой области и контрольная сумма
$pos = MouseGetPos (); запомнили положение мыши
MouseClick ("left", 631, 89, 1, 0 ); Кликнули куда надо
MouseMove ($pos(0), $pos(1), 0);вернули на место
 
Верх