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):
"""
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.
---
#### 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}")
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}")
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
Realiza uma captura de tela e salva a imagem no diretório que abriga o serviço do winGUI.
---
#### Parâmetros:
- f: Nome do arquivo a ser salvo
-x: X da origem da imagem - coordenada mais a esquerda e acima do retangulo
-y: Y da orgigem Analogo a x
- 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}")
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}")
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}")
def screen_wait(self, f: str, m: int = 30):
"""
## Screen Wait
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}")
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.
---
#### 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}")
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}")
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")
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")
@ -199,31 +295,84 @@ class Wingui:
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}")
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.
---
#### Parâmetros:
---
---
#### Retorna:
---
"""
return self.__requestget__(f"/ipc/wingui/screen/dsinternal")
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.
---
#### Parâmetros:
---
---
#### Retorna:
---
"""
return self.__requestget__(f"/ipc/wingui/screen/dsexternal")
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.
---
#### Parâmetros:
---
---
#### Retorna:
---
"""
return self.__requestget__(f"/ipc/wingui/screen/dsclone")
def screen_dsextend(self):
"""
## Screen Display Extend
Faz com que o vídeo de ambos os monitores seja independente.
---
#### Parâmetros:
---
---
#### Retorna:
---
"""
return self.__requestget__(f"/ipc/wingui/screen/dsextend")