From b690afc69cd8105c9da5c7a2cc4c7110260f5fd2 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Guedes Date: Thu, 30 Dec 2021 13:05:28 -0300 Subject: [PATCH] Screen methods improvements. --- api/wingui/cli.py | 197 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 173 insertions(+), 24 deletions(-) diff --git a/api/wingui/cli.py b/api/wingui/cli.py index e46bf30..f02e751 100644 --- a/api/wingui/cli.py +++ b/api/wingui/cli.py @@ -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. - -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}") 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. - -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 - -w: Comprimento da imagem - -h: altura da imagem. + ## Screen Capture + Realiza uma captura de tela e salva a imagem no diretório que abriga o serviço do winGUI. - 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}") def screen_find(self, f: str): """ - Envia a coordenada da imagem identificada pelo arquivo f (x,y,w,h), ou dá 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): """ - -f: Caminho da imagem que se está buscando. - -m: Tempo máximo pelo qual se buscará a imagem na tela. + ## 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. - -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}") 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")