Screen methods improvements.

anticaptcha
Pedro de Oliveira Guedes 2021-12-30 13:05:28 -03:00
parent 77d80a450d
commit b690afc69c
1 changed files with 173 additions and 24 deletions

View File

@ -95,91 +95,187 @@ class Wingui:
def screen_click(self, img: str): def screen_click(self, img: str):
""" """
Screen Click: realiza um click na tela, utilizando a imagem img como referencia. ## Screen Click
Realiza um click na tela, desde que encontre uma correspondência à imagem fornecida.
-img: Caminho absoluto para a imagem a ser clicada na tela. ---
#### Parâmetros:
- img: Caminho absoluto para a imagem a ser clicada na tela.
Caso o click ocorra, esse metodo retorna um array de inteiros, sendo o 1º o valor de X, e o 2º o valor de Y. O 3º parametro é o comprimento (width, w) da imagem e o 4º valor e a altura (height, h) de onde o click ocorreu. ---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
img = urllib.parse.quote(img, "")
return self.__requestget__(f"/ipc/wingui/screen/click?f={img}") return self.__requestget__(f"/ipc/wingui/screen/click?f={img}")
def screen_clickcenter(self, img: str): def screen_clickcenter(self, img: str):
""" """
Análogo a screen_click, mas clica no centro da imagem. ## Screen Click Center
Semelhante a screen_click, porém realiza o clique no centro da imagem localizada.
---
#### Parâmetros:
- img: Caminho absoluto para a imagem a ser clicada na tela.
---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
img = urllib.parse.quote(img, "")
return self.__requestget__(f"/ipc/wingui/screen/clickcenter?f={img}") return self.__requestget__(f"/ipc/wingui/screen/clickcenter?f={img}")
def screen_capture(self, f: str, x: int, y: int, w: int, h: int): def screen_capture(self, f: str, x: int, y: int, w: int, h: int):
""" """
Captura a tela e salva na maquina onde o robo é executado, em formato PNG. ## Screen Capture
-f: Nome do arquivo a ser salvo Realiza uma captura de tela e salva a imagem no diretório que abriga o serviço do winGUI.
-x: X da origem da imagem - coordenada mais a esquerda e acima do retangulo
-y: Y da orgigem Analogo a x
-w: Comprimento da imagem
-h: altura da imagem.
Para capturar um retangulo, do Pixel (10,10) ate o Pixel (110,100), utiliza-se: ---
screen_capture("c:\\arq.png",10,10,100,100) #### Parâmetros:
- f: Nome do arquivo a ser salvo
- x: X da origem da imagem - coordenada mais à esquerda do retangulo
- y: Y da origem da imagem - coordenada mais acima do retangulo
- w: Comprimento da imagem
- h: altura da imagem.
---
#### Retorna:
---
---
#### Exemplo:
Para capturar um retangulo, do Pixel (10,10) ate o Pixel (110,100), utiliza-se:
screen_capture("c:\\arq.png",10,10,100,100)
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/capture?x={x}&y={y}&w={w}&h={h}&f={f}") return self.__requestget__(f"/ipc/wingui/screen/capture?x={x}&y={y}&w={w}&h={h}&f={f}")
def screen_find(self, f: str): def screen_find(self, f: str):
""" """
Envia a coordenada da imagem identificada pelo arquivo f (x,y,w,h), ou uma excecao caso a imagem não seja encontrada. ## Screen Find
Busca a imagem cujo caminho foi fornecido na tela.
---
#### Parâmetros:
- f: Caminho absoluto da imagem que se deseja buscar.
---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/find?f={f}") return self.__requestget__(f"/ipc/wingui/screen/find?f={f}")
def screen_findall (self, f: str): def screen_findall (self, f: str):
""" """
Busca a imagem fornecida no parâmetro "f", se a encontrar, passa a buscar todas as recorrências desta imagem na tela. Retorna um array com as posições de todas as imagens encontradas. ## Screen Find All
Busca todas as ocorrências da imagem fornecida como parâmetro na tela.
---
#### Parâmetros:
- f: Caminho absoluto da imagem que se deseja buscar.
---
#### Retorna:
-> Array de todas as ocorrências da imagem na tela. As ocorrências são representadas por dicionários cujas chaves são o eixo da coordenada e o valor é o valor do mesmo.
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/findall?f={f}") return self.__requestget__(f"/ipc/wingui/screen/findall?f={f}")
def screen_wait(self, f: str, m: int = 30): def screen_wait(self, f: str, m: int = 30):
""" """
-f: Caminho da imagem que se está buscando. ## Screen Wait
-m: Tempo máximo pelo qual se buscará a imagem na tela. Procura pela imagem fornecida na tela por determinado tempo.
---
#### Parâmetros:
- f: Caminho da imagem que se está buscando.
- m: Tempo máximo pelo qual se buscará a imagem na tela.
-retorno: Array com as coordenadas da imagem encontrada e caminho da imagem utilizada para busca. ---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/wait?f={f}&m={m}") return self.__requestget__(f"/ipc/wingui/screen/wait?f={f}&m={m}")
def screen_waitclick(self, f: str, m: int = 30): def screen_waitclick(self, f: str, m: int = 30):
""" """
## Screen WaitClick
Análogo a screen_wait, mas realiza click na coordenada x = 0, y = 0 da imagem. Análogo a screen_wait, mas realiza click na coordenada x = 0, y = 0 da imagem.
-f: Caminho da imagem que se está buscando. ---
-m: Tempo máximo pelo qual se buscará a imagem na tela. #### Parâmetros:
- f: Caminho da imagem que se está buscando.
- m: Tempo máximo pelo qual se buscará a imagem na tela.
-retorno: Array com as coordenadas da imagem encontrada e caminho da imagem utilizada para busca. ---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/waitclick?f={f}&m={m}") return self.__requestget__(f"/ipc/wingui/screen/waitclick?f={f}&m={m}")
def screen_waitclickcenter(self, f: str, m: int = 30): def screen_waitclickcenter(self, f: str, m: int = 30):
""" """
Analogo a screen_waitclick, mas realiza click no CENTRO da imagem ## Screen WaitClick
Análogo a screen_waitclick, mas realiza click nas coordenadas centrais da imagem fornecida.
---
#### Parâmetros:
- f: Caminho da imagem que se está buscando.
- m: Tempo máximo pelo qual se buscará a imagem na tela.
---
#### Retorna:
-> Array contendo as coordenadas iniciais da imagem localizada na tela, as dimensões de comprimento e altura, assim como o caminho fornecido ao parâmetro img.
""" """
f = urllib.parse.quote(f, "")
return self.__requestget__(f"/ipc/wingui/screen/waitclickcenter?f={f}&m={m}") return self.__requestget__(f"/ipc/wingui/screen/waitclickcenter?f={f}&m={m}")
def screen_scale(self): def screen_scale(self):
""" """
Retorna a escala da tela, em um array [x,y] ## Screen Scale
Busca nas configurações de vídeo do sistema a escala do monitor.
---
#### Parâmetros:
---
---
#### Retorna:
-> Array contendo a escala do monitor.
""" """
return self.__requestget__("/ipc/wingui/screen/scale") return self.__requestget__("/ipc/wingui/screen/scale")
def screen_size(self): def screen_size(self):
""" """
Retorna a tamanho da tela, em um array [x,y] ## Screen Scale
Busca nas configurações de vídeo do sistema o tamanho da tela do monitor.
---
#### Parâmetros:
---
---
#### Retorna:
-> Array contendo as dimensões da tela.
""" """
return self.__requestget__("/ipc/wingui/screen/size") return self.__requestget__("/ipc/wingui/screen/size")
@ -199,31 +295,84 @@ class Wingui:
def screen_shot(self, fmt: str = "b64"): def screen_shot(self, fmt: str = "b64"):
""" """
Tira um screenshot e retorna imagem como string ## Screen shot
Faz uma captura completa da tela.
---
#### Parâmetros:
- fmt: Formato de codificação da imagem capturada. Por padrão está codificada em Base64.
---
#### Retorna:
-> Captura da tela completa exibida no monitor codificada.
""" """
return self.__requestget__(f"/ipc/wingui/screen/shot?fmt={fmt}") return self.__requestget__(f"/ipc/wingui/screen/shot?fmt={fmt}")
def screen_dsinternal(self): def screen_dsinternal(self):
""" """
## Screen Display Internal
Faz com que o monitor definido como primário (através das configurações do windows) seja o único ativo. Faz com que o monitor definido como primário (através das configurações do windows) seja o único ativo.
---
#### Parâmetros:
---
---
#### Retorna:
---
""" """
return self.__requestget__(f"/ipc/wingui/screen/dsinternal") return self.__requestget__(f"/ipc/wingui/screen/dsinternal")
def screen_dsexternal(self): def screen_dsexternal(self):
""" """
## Screen Display External
Faz com que o monitor definido como secundário (através das configurações do windows) seja o único ativo. Faz com que o monitor definido como secundário (através das configurações do windows) seja o único ativo.
---
#### Parâmetros:
---
---
#### Retorna:
---
""" """
return self.__requestget__(f"/ipc/wingui/screen/dsexternal") return self.__requestget__(f"/ipc/wingui/screen/dsexternal")
def screen_dsclone(self): def screen_dsclone(self):
""" """
## Screen Display Clone
Faz com que o vídeo exibido no monitor definido como primário seja clonado para o secundário. Faz com que o vídeo exibido no monitor definido como primário seja clonado para o secundário.
---
#### Parâmetros:
---
---
#### Retorna:
---
""" """
return self.__requestget__(f"/ipc/wingui/screen/dsclone") return self.__requestget__(f"/ipc/wingui/screen/dsclone")
def screen_dsextend(self): def screen_dsextend(self):
""" """
## Screen Display Extend
Faz com que o vídeo de ambos os monitores seja independente. Faz com que o vídeo de ambos os monitores seja independente.
---
#### Parâmetros:
---
---
#### Retorna:
---
""" """
return self.__requestget__(f"/ipc/wingui/screen/dsextend") return self.__requestget__(f"/ipc/wingui/screen/dsextend")