2017-01-31 7 views
0

Моя проблема заключается в том, что я не знаю, как мой код запускается в определенном регионе - он продолжает сканировать весь экран. Вот мой коварный код, если кто-то может это посмотреть.Как установить регион для скрипта? Sikuli

running = True 

def runHotkey(event): 
global running 
running = True 

Env.addHotkey(Key.F1, KeyModifier.CTRL, runHotkey) 
Settings.MoveMouseDelay = 0 
Region(Region(23,54,731,778)) 
while exists("1485901173411.png") and running: 

    click("1485900597943.png")  
    if exists(Pattern("1485900218788.png").similar(0.95)): 
     type(Key.CTRL + "L") 
     wait(1) 
     type(Key.ALT + Key.ENTER) 
     wait(10) 
    else: 
     click("1485901173411.png") 
     wait(7) 

ответ

0

Как вы сказали, чтобы ограничить область поиска, вы должны искать модели внутри предопределенной области. Существует несколько способов определения региона.

Используя координаты

Например, если вы хотите посмотреть в верхней части экрана, вы можете сделать:

topHalfScreen = Region(x, y, w, h) 

, а затем:

targetPattern = topHalfScreen.find("targetPattern.png") 

здесь вы также можете использовать getScreen().getBounds().width и getScreen().getBounds().height для определения размера экрана.

Использование шаблона

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

Использование относительного рисунка

Таким образом, вы можете осуществлять поиск по шаблону на основе местоположения другого рисунка. Например:

initialPattern = find("pattern.png") 
actualRegion = Region(initialPattern.x + x1, initialPattern.y + y1, initialPattern.w + w1, initialPattern.h + h1) 

 Смежные вопросы

  • Нет связанных вопросов^_^