Я хочу, чтобы пиксель искал определенную область. Приложение Bluestacks App игрока:Поиск по пикселям в определенной области
Синий прямоугольник BlueStacks (его позиция может измениться). Я получаю позицию, используя ControlGetPos()
. Я только хочу, чтобы поиск по пикселям в красном прямоугольнике внутри приложения. Положение красного прямоугольника - 307,628,355,675 на основе информации о окнах с режимом координат окна. Но это не работает. Вот мой код:
HotKeySet("{F2}", "mulai")
HotKeySet("{F3}", "berhenti")
Global $lokasi[2]
Global $warna
Global $penghitung
Global $nyala
Global $title = "BlueStacks App Player"
Global $hwnd = WinGetHandle($title)
Global $BSpos
Func berhenti()
Exit
EndFunc ;==>berhenti
Func getPos()
$aPos = ControlGetPos($title, "", "[CLASS:BlueStacksApp; INSTANCE:1]")
$tPoint = DllStructCreate("int X;int Y")
DllStructSetData($tPoint, "X", $aPos[0])
DllStructSetData($tPoint, "Y", $aPos[1])
_WinAPI_ClientToScreen(WinGetHandle(WinGetTitle($title)), $tPoint)
$BSpos[0] = DllStructGetData($tPoint, "X")
$BSpos[1] = DllStructGetData($tPoint, "Y")
EndFunc ;==>getPos
Func mulai()
$nyala = 1
While $nyala = 1
$pos = WinGetPos($hwnd)
WinActivate($hwnd)
$lokasi = PixelSearch($BSpos[0] , $BSpos[1], $BSpos[0] + $BSpos[2], $BSpos[1] + $BSpos[3], 0x0185B3)
MouseMove($lokasi[0], $lokasi[1], 0)
Sleep(200)
If @error Then
$penghitung = $penghitung + 1
EndIf
If $penghitung > 5 Then
$nyala = 0
EndIf
WEnd
EndFunc ;==>mulai
While 1
Sleep(200)
WEnd
Как вы получили цвет поиска? Я предлагаю использовать printscreen, а затем вставить его в Photoshop и получить цвет с помощью цветного инструмента. Если вы сохраните осмотр изображения bedore, убедитесь, что вы сохранили его как bmp – Milos
. Кроме того, переформатируйте свой код, чтобы: a) содержать все соответствующие инструкции include и b) содержать читаемые английские имена переменных или, по крайней мере, комментарии, указывающие их содержание/значение. Кроме того, вы можете использовать аромат 'ImageSearch' для поиска этой кнопки. –
Переместите указатель мыши на четыре угла ваших красных координат прямоугольников, чтобы проверить их. Положите сон между вашими движениями и идите в левый верхний и правый нижний угол и посмотрите, нужно ли вам менять путь, ваши пиксельные координаты адресуются. Есть несколько способов, это называется PixelCoordMode. – Samoth