Witam ponownie :)!
Idąc dalej z gotowym skryptem na wyszukiwanie w pętli obrazów chciałbym aby mój skrypt wyszukiwał pętle z listy obrazków na określonym terenie na ekranie albo w jakimś określonym "okienku" aplikacji.
Ma ktoś pomysł jak to ogarnąć?
Witam ponownie :)!
Idąc dalej z gotowym skryptem na wyszukiwanie w pętli obrazów chciałbym aby mój skrypt wyszukiwał pętle z listy obrazków na określonym terenie na ekranie albo w jakimś określonym "okienku" aplikacji.
Ma ktoś pomysł jak to ogarnąć?
Dobra. Moze jednak rozumiem
chciałbym aby mój skrypt wyszukiwał (...) na określonym terenie na ekranie
Idac za dokumentacja
pyautogui.locateAllOnScreen('someButton.png')
(1101, 252, 50, 50),
(59, 481, 50, 50),
(1395, 640, 50, 50),
(1838, 676, 50, 50)
I teraz wystarczy dla kazdego zwroconego wyniku sprawdzic czy zawiera sie w okreslonym prostokacie na ekranie.
Cos ala
if btn.x in range(500,1001) and btn.y in range(300,901):
EDIT!!!
Aby lepiej każdy zrozumiał o co mi chodzi załóżmy że mam skrypt do wykrywania przycisków według tego pyautogui co ogarnąłem w poprzednim moim temacie. Wszystko śmiga fajnie ale co gdybym chciał odpalić dwie takie same aplikacje? Skrypt wariuje bo gdy na okienku pierwszym znajdzie wymagany przycisk to wyświetla oczywiście komunikat że znaleziono ale to co się dzieje na drugim okienku ma gdzieś :D Chciałbym aby skrypt wykonywał swój kod na określonym okienku Windows lub w określonym regionie, aby to zobrazować proszę fotka:
https://zapodaj.net/02cf2781aa851.jpg.html
Uruchomić dwa programy które będą miały określone regiony (okienko1, okienko2) w których będą działały i nie będą zwracały na siebie uwagi
W ogole nie wiem czy nie lepszy bylby w tym AutoIT
Mądry z Ciebie człowiek panie Stivens. Co do autoit, nie mam zielonego pojęcia co to i jak to działa ale fajnie byłoby gdybym mógł już na samym początku programu zidentyfikować okienko na którym ma pracować dalsza część kodu i żeby nie zwracał uwagi na to że obok jest drugie takie samo okienko które ma też takie same przyciski ale na nie nie zwracamy uwagi bo tamtym drugim oknem zajmuje się drugi taki sam program
Chyba udałoby się to ogarnąć najprościej tym pyautogui i wyszukiwaniem poprzez określony prostokąt na ekranie. Muszę tylko dowiedzieć się jakie dokładnie kordy ma miejsce każdego przycisku i wdrożyć to do kodu tak myślę :)
pyautogui afaik manewruje tylko myszka/klawiatura a informacje ma jedynie na podstawie screenshotow i ich interpretacji (lokalizacja bitmap itd.).
AutoIT dziala bardziej bezposrednio na innych aplikacjach.
Myślę że spokojnie uda się to zrobić sprawdzeniem czy przycisk jest wykryty w określonym prostokącie używając Twojego mądrego toku myślenia. Bardzo mi to pomoże bo w sumie mogę napisać skrypt który będzie wykrywał przyciski w dokładnie określonych miejscach na ekranie, a później zrobić drugą aplikację identyczną tyle że będzie mieć inne prostokąty z pozycją.
Nie wiem tylko teraz jak zaimplementować to btn.x i btn.y co to jest w ogóle :D
The return value is a 4-integer tuple: (left, top, width, height)
class Button:
def __init__(self, _tuple):
self.x = _tuple[0]
self.y = _tuple[1]
btn = Button( pyautogui.locateOnScreen('btn.png') )
(ponownie, kod generyczny - moze byc jakis fuckup)