2015-06-19 4 views
0

Я хочу, чтобы пиксель искал определенную область. Приложение Bluestacks App игрока:Поиск по пикселям в определенной области

enter image description here

Синий прямоугольник 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 
+1

Как вы получили цвет поиска? Я предлагаю использовать printscreen, а затем вставить его в Photoshop и получить цвет с помощью цветного инструмента. Если вы сохраните осмотр изображения bedore, убедитесь, что вы сохранили его как bmp – Milos

+1

. Кроме того, переформатируйте свой код, чтобы: a) содержать все соответствующие инструкции include и b) содержать читаемые английские имена переменных или, по крайней мере, комментарии, указывающие их содержание/значение. Кроме того, вы можете использовать аромат 'ImageSearch' для поиска этой кнопки. –

+1

Переместите указатель мыши на четыре угла ваших красных координат прямоугольников, чтобы проверить их. Положите сон между вашими движениями и идите в левый верхний и правый нижний угол и посмотрите, нужно ли вам менять путь, ваши пиксельные координаты адресуются. Есть несколько способов, это называется PixelCoordMode. – Samoth

ответ

0

Кажется, что нет ничего плохого в библиотеке поиска изображений, проблема в том, что я запускаю Windows 10 с использованием x64bit. Поэтому, компилируя его с помощью компилятора x64 (в то время как он действительно предлагает использовать компилятор x86), администратор previllige решил проблему.