2021-12-29 18:16:32 +00:00
# import datetime
import json
import urllib
import os
from typing import List
import requests
class Wingui :
""" Classe que representa um proxy para um robo remoto.
mapeia o robo através da propriedade rid
ep significa endpoint , e aponta para o endereco na web on se hostea o serviço
Por padrão é : https : / / replay . digitalcircle . com . br / robotapi / cmd /
"""
ep : str = " "
def __init__ ( self ) :
self . ep = " https://localhost:8443 "
def __request__ ( self , data : str ) :
""" Metodo que realiza chamadas http """
url = self . ep + data
print ( " Calling: " + url )
apikey = os . environ . get ( ' REPLAY_APIKEY ' )
headers = { " X-API-KEY " : apikey }
res = requests . get ( url , headers = headers , verify = False )
if res . status_code > = 400 :
raise Exception ( f " HTTP ERROR: { str ( res . status_code ) } - { res . text } " )
if res . headers . get ( " Content-Type " ) != None and res . headers . get ( " Content-Type " ) . find ( " json " ) != - 1 :
return json . loads ( res . text )
else :
return res . text
# Funções Clip
def clip_read ( self ) - > str :
""" Le o conteudo da clipboard na maquina do robo, e retorna como string """
return self . __request__ ( " /ipc/wingui/clip/read " )
def clip_write ( self , m : str ) - > str :
""" Grava o conteudo fornecido em m na clipboard da maquina robo """
return self . __request__ ( " /ipc/wingui/clip/write?str= {} " . format ( urllib . parse . quote ( m , " " ) ) )
# Funções Screen
def screen_click ( self , img : str ) :
"""
Screen Click : realiza um click na tela , utilizando a imagem img como referencia .
- 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 .
"""
return self . __request__ ( f " /ipc/wingui/screen/click?f= { img } " )
def screen_clickcenter ( self , img : str ) :
"""
Análogo a screen_click , mas clica no centro da imagem .
"""
return self . __request__ ( 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 .
Para capturar um retangulo , do Pixel ( 10 , 10 ) ate o Pixel ( 110 , 100 ) , utiliza - se :
screen_capture ( " c: \\ arq.png " , 10 , 10 , 100 , 100 )
"""
return self . __request__ ( 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 .
"""
return self . __request__ ( 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 .
"""
return self . __request__ ( 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 .
- retorno : Array com as coordenadas da imagem encontrada e caminho da imagem utilizada para busca .
"""
return self . __request__ ( f " /ipc/wingui/screen/wait?f= { f } &m= { m } " )
def screen_waitclick ( self , f : str , m : int = 30 ) :
"""
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 .
- retorno : Array com as coordenadas da imagem encontrada e caminho da imagem utilizada para busca .
"""
return self . __request__ ( 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
"""
return self . __request__ ( f " /ipc/wingui/screen/waitclickcenter?f= { f } &m= { m } " )
def screen_scale ( self ) :
"""
Retorna a escala da tela , em um array [ x , y ]
"""
return self . __request__ ( " /ipc/wingui/screen/scale " )
def screen_size ( self ) :
"""
Retorna a tamanho da tela , em um array [ x , y ]
"""
return self . __request__ ( " /ipc/wingui/screen/size " )
# def screen_res(self, d: int) -> List[int]:
# """
# Retorna a resolução da tela, em um array [x,y]
# """
# return self.__request__(f"/ipc/wingui/screen/res?d={d}")
# def screen_setres(self, x: int, y: int, c: int):
# """
# Set resolução e cor da tela
# """
# return self.__request__(f"/ipc/wingui/screen/setres?x={x}&y={y}&c={c}")
def screen_shot ( self , fmt : str = " b64 " ) :
"""
Tira um screenshot e retorna imagem como string
"""
return self . __request__ ( f " /ipc/wingui/screen/shot?fmt= { fmt } " )
def screen_dsinternal ( self ) :
"""
Faz com que o monitor definido como primário ( através das configurações do windows ) seja o único ativo .
"""
return self . __request__ ( f " /ipc/wingui/screen/dsinternal " )
def screen_dsexternal ( self ) :
"""
Faz com que o monitor definido como secundário ( através das configurações do windows ) seja o único ativo .
"""
return self . __request__ ( f " /ipc/wingui/screen/dsexternal " )
def screen_dsclone ( self ) :
"""
Faz com que o vídeo exibido no monitor definido como primário seja clonado para o secundário .
"""
return self . __request__ ( f " /ipc/wingui/screen/dsclone " )
def screen_dsextend ( self ) :
"""
Faz com que o vídeo de ambos os monitores seja independente .
"""
return self . __request__ ( f " /ipc/wingui/screen/dsextend " )
# Funções Draw
def draw_addbox ( self , x : int , y : int , w : int = 100 , h : int = 100 , t : int = 3 ) :
"""
adiciona caixa a tela de overlay
- x : Ponto inicial do eixo x para o desenho .
- y : Ponto inicial do eixo y para o desenho .
- w : Largura da caixa a ser desenhada .
- h : Altura da caixa a ser desenhada .
- t : Largura do pincel que desenhará a caixa .
Todos os parâmetros devem ser dados em píxels .
"""
return self . __request__ ( f " /ipc/wingui/draw/addbox?x= { x } &y= { y } &w= { w } &h= { h } &t= { t } " )
def draw_addrect ( self , x : int , y : int , w : int = 100 , h : int = 100 ) :
"""
adiciona um retângulo opaco à tela de overlay
- x : Ponto inicial do eixo x para o desenho .
- y : Ponto inicial do eixo y para o desenho .
- w : Largura do retângulo a ser desenhado .
- h : Altura do retângulo a ser desenhado .
Todos os parâmetros devem ser dados em píxels .
"""
return self . __request__ ( f " /ipc/wingui/draw/addrect?x= { x } &y= { y } &w= { w } &h= { h } " )
def draw_addtext ( self , x : int , y : int , t : str = " No text set " ) :
"""
adiciona caixa texto a tela de overlay
- x : Ponto inicial do eixo x para a escrita .
- y : Ponto inicial do eixo y para a escrita .
- t : Texto a ser escrito .
"""
return self . __request__ ( f " /ipc/wingui/draw/addtext?x= { x } &y= { y } &t= { urllib . parse . quote ( t ) } " )
def draw_clear ( self ) :
""" Limpa tela de overlay """
return self . __request__ ( " /ipc/wingui/draw/clear " )
# def draw_show(self):
# """mostra tela de overlay"""
# return self.__request__("/ipc/wingui/draw/show")
# Funções KB
def kb_tap ( self , s : str ) - > str :
""" Envia uma tecla ou teclas para serem clicadas no componente com foco onde o robo é executado
Em caso de teclas alteradoras , elas devem ser sempre posicionadas apos a tecla alvo .
Dessa forma , para enviar ALT + d , vc envia o string " d,alt " . Para enviar C maiusculo , vc utiiliza
" c,shift " .
"""
return self . __request__ ( f ' /ipc/wingui/kb/tap?str= { urllib . parse . quote ( s , " " ) } ' )
def kb_type ( self , s : str ) - > str :
""" Semelhante a tap, mas envia textos completos.
* * * ATENCAO * * * Esse metodo usa urlencoding , dessa forma caracteres serao codificados para envio . # virará %23 por exemplo. Ao chegar no robo passarão pelo decoding análogo.
"""
return self . __request__ ( " /ipc/wingui/kb/type?str= {} " . format ( urllib . parse . quote ( s , " " ) ) )
def kb_toggle ( self , s : str ) - > str :
""" Semelhante a tap, mas envia textos completos.
* * * ATENCAO * * * Esse metodo usa urlencoding , dessa forma caracteres serao codificados para envio . # virará %23
por exemplo . Ao chegar no robo passrão pelo decoding análogo .
"""
return self . __request__ ( " /ipc/wingui/kb/toggle?str= {} " . format ( urllib . parse . quote ( s , " " ) ) )
# Funções Dialog
def dialog_color ( self , t : str = " Selecione Cor " , d : str = " BEBEBE " ) - > bool :
"""
Apresenta dialogo para que usuario escolha uma cor
Params :
- t : Titulo
- d : Cor padrao
Retorna :
Dict
"""
return self . __request__ ( f ' /ipc/wingui/dialog/color?t= { urllib . parse . quote ( t , " " ) } &d= { urllib . parse . quote ( d , " " ) } ' )
def dialog_date ( self , t : str = " Selecione Data " , m : str = " " , d = " " , f = " " ) - > str :
"""
Apresenta dialogo para que usuario escolha uma Data
Params :
- t : Titulo
- m : Mensagem de texto
- d : Data Padrao ( se vazio = agora )
- f : formato para parse
Retorna :
Dict
"""
return self . __request__ ( f ' /ipc/wingui/dialog/date?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } &d= { urllib . parse . quote ( d , " " ) } &f= { urllib . parse . quote ( f , " " ) } ' )
def dialog_entry ( self , t : str = " Favor inserir " , m : str = " Valor " , d : str = " Valor " ) - > str :
"""
## Dialog Entry
##### Apresenta dialog para entrada de texto curto
- - -
Params :
- t : Titulo
- m : Mensagem de texto
- d : valor padrao
- - -
Retorna :
- > String digitada .
"""
return self . __request__ ( f ' /ipc/wingui/dialog/entry?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } &d= { urllib . parse . quote ( d , " " ) } ' )
def dialog_error ( self , t : str = " Erro " , m : str = " Houve um erro " ) - > bool :
"""
## Dialog Error
##### Apresenta dialog c msg de erro
- - -
Params :
- t : Titulo
- m : Mensagem de texto
- - -
Retorna :
- > " ok "
"""
return self . __request__ ( f ' /ipc/wingui/dialog/error?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } ' )
def dialog_file ( self , t : str = " Selecionar arquivo " , f : str = " . " , d : str = " false " ) - > str :
"""
## Dialog File
Apresenta dialog para selecionar arquivo
- - -
Params :
- t : Titulo da janela .
- f : Diretório inicial ( " . " por padrão )
- d : true - > Seleciona diretórios ; false - > Seleciona arquivos
- - -
Retorna :
- > Caminho absoluto do arquivo selecionado
"""
return self . __request__ ( f ' /ipc/wingui/dialog/file?t= { urllib . parse . quote ( t , " " ) } &f= { urllib . parse . quote ( f , " " ) } &d= { urllib . parse . quote ( d , " " ) } ' )
def dialog_file_multi ( self , t : str = " Selecionar arquivos " , f : str = " . " ) - > List [ str ] :
"""
## Dialog File Multi
Apresenta dialog para selecionar arquivo
- - -
Params :
- t : Titulo da janela .
- f : Diretório inicial ( " . " por padrão )
- - -
Retorna :
- > Lista com os caminhos absolutos dos arquivos selecionados .
"""
return self . __request__ ( f ' /ipc/wingui/dialog/filemulti?t= { urllib . parse . quote ( t , " " ) } &f= { urllib . parse . quote ( f , " " ) } ' )
def dialog_info ( self , t : str = " Info " , m : str = " Info Msg " ) - > bool :
"""
## Dialog Info
Apresenta dialog msg
- - -
Params :
- t : Titulo da janela
- m : Mensagem exibida
- - -
Retorna :
- > " ok "
"""
return self . __request__ ( f ' /ipc/wingui/dialog/info?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } ' )
def dialog_list ( self , t : str = " Selecionar " , m : str = " Selecione uma entrada " , f : List [ str ] = [ ] ) - > str :
"""
## Dialog List
Apresenta dialog com uma lista . Permite o usuário selecionar um dos itens .
- - -
Params :
- t : Titulo da janela
- m : Mensagem da janela
- f : Opções para escolher
- - -
Retorna :
- > Opção escolhida
"""
return self . __request__ ( f ' /ipc/wingui/dialog/list?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } &f= { urllib . parse . quote ( " , " . join ( f ) , " " ) } ' )
def dialog_listmulti ( self , t : str = " Selecionar " , m : str = " Selecione uma entrada " , f : List [ str ] = [ ] ) - > List [ str ] :
"""
## Dialog List Multi
Apresenta dialog com uma lista . Permite o usuário selecionar os itens que quiser .
- - -
Params :
- t : Titulo da janela
- m : Mensagem da janela
- f : Opções para escolher
- - -
Retorna :
- > Lista com as opções escolhidas
"""
return self . __request__ ( f ' /ipc/wingui/dialog/listmulti?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } &f= { urllib . parse . quote ( " , " . join ( f ) , " " ) } ' )
def dialog_password ( self , t : str = " Entrar com Senha " , m : str = " Favor fornecer sua senha " ) - > str :
"""
## Dialog Password
Apresenta dialog para entrada de senha / informações confidenciais .
- - -
Params :
- t : Titulo da janela
- m : Mensagem de texto exibida
- - -
Retorna :
- > Texto digitado .
"""
return self . __request__ ( f ' /ipc/wingui/dialog/password?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } ' )
def dialog_question ( self , t : str = " Question " , m : str = " Question Msg " ) - > bool :
"""
## Dialog Question
Apresenta dialog c pergunta sim / nao
- - -
Params :
- t : Titulo da janela
- m : Mensagem exibida .
- - -
Retorna :
- True : Caso clique em sim
- False : Caso clique em não
"""
return self . __request__ ( f ' /ipc/wingui/dialog/question?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } ' )
def dialog_warn ( self , t : str = " Warn " , m : str = " Warn " ) - > bool :
"""
## Dialog Warn
Apresenta dialog msg
- - -
Params :
- t : Titulo da janela
- m : Mensagem exibida
- - -
Retorna :
- > " ok "
"""
return self . __request__ ( f ' /ipc/wingui/dialog/warn?t= { urllib . parse . quote ( t , " " ) } &m= { urllib . parse . quote ( m , " " ) } ' )
# def dialog_yesno(self, t: str, m: str) -> bool:
# """
# Apresenta dialogo para que usuario escolha sim ou nao
# Params:
# - t: Titulo
# - m: Mensagem
# Retorna:
# bool
# """
# return self.__request__("dialog/yesno?t={}&m={}".format(urllib.parse.quote(t, ""), urllib.parse.quote(m, "")))
#
# def dialog_filesave(self, t: str, d: str, x: List[str]) -> str:
# """
# Apresenta dialogo usuario arquivo para salvar arquivo
# Params:
# - t: Titulo
# - d: descricao
# - x: lista de extensoes SEM PONTO - ex: ["pdf","xls","py"]
# Retorna:
# str: Nome do arquivo
# """
# xstr = ",".join(x)
# return self.__request__(
# "dialog/filesave?t={}&d={}&x={}".format(urllib.parse.quote(t, ""), urllib.parse.quote(d, ""),
# urllib.parse.quote(xstr, "")))
#
# def dialog_fileload(self, t: str, d: str, x: List[str]) -> str:
# """
# Apresenta dialogo usuario arquivo para carregar arquivo
# Params:
# - t: Titulo
# - d: descricao
# - x: lista de extensoes SEM PONTO - ex: ["pdf","xls","py"]
# Retorna:
# str: Nome do arquivo
# """
# xstr = ",".join(x)
# return self.__request__(
# "dialog/fileload?t={}&d={}&x={}".format(urllib.parse.quote(t, ""), urllib.parse.quote(d, ""),
# urllib.parse.quote(xstr, "")))
#
# def dialog_dir(self, t: str) -> str:
# """"
# Apresenta dialogo usuario selecionar pasta
# Params:
# - t: Titulo
# Retorna:
# str: Nome do diretorio
# """
# return self.__request__("dialog/dir?t={}".format(urllib.parse.quote(t, "")))
# Funções Mouse
def mouse_move ( self , x : int , y : int ) - > str :
"""
## Mouse Move
Move o mouse para a coordenada X , Y
- - -
Params :
- x : Posição absoluta da tela no eixo x
- y : Posição absoluta da tela no eixo y
- - -
Retorna :
- - -
"""
return self . __request__ ( f " /ipc/wingui/mouse/move?x= { x } &y= { y } " )
def mouse_drag ( self , x : int , y : int , btn : str = " left " ) - > str :
"""
## Mouse Drag
Move o mouse para a coordenada X , Y
- - -
Params :
- x : Coordenada final do eixo x
- y : Coordenada final do eixo y
- - -
Retorna :
- - -
"""
return self . __request__ ( f ' /ipc/wingui/mouse/drag?x= { x } &y= { y } &btn= { urllib . parse . quote ( btn , " " ) } ' )
def mouse_click ( self ) - > str :
"""
## Mouse Click
Clica no local onde o mouse está repousado
- - -
Params :
- - -
- - -
Retorna :
- - -
"""
return self . __request__ ( " /ipc/wingui/mouse/click " )
def mouse_moverelative ( self , x : int , y : int ) - > str :
"""
## Mouse Move Relative
Move o mouse para a coordenada X , Y , relativo a coordenada atual
- - -
Params :
- x : Quantidade de píxeis que o mouse será movido no eixo x
- y : Quantidade de píxeis que o mouse será movido no eixo y
##### No caso de valores negativos, moverá relativamente o mouse para a esquerda (x) e/ou para cima (y)
- - -
Retorna :
- - -
"""
return self . __request__ ( " /ipc/wingui/mouse/moverelative?x= {} &y= {} " . format ( x , y ) )
def mouse_clickat ( self , x : int , y : int ) :
"""
## Mouse Click At
Move o mouse e clica em uma única operação
- - -
Params :
- x : Coordenada absoluta do eixo x no qual o robô fará o clique
- y : Coordenada absoluta do eixo y no qual o robô fará o clique
- - -
Retorna :
- - -
"""
return self . __request__ ( " /ipc/wingui/mouse/clickat?x= {} &y= {} " . format ( x , y ) )
def mouse_clickatrelative ( self , x : int , y : int ) :
"""
## Mouse Click At
Move o mouse e clica em uma única operação
- - -
Params :
- x : Quantidade em píxels que o mouse se moverá no eixo X a partir da posição atual
- y : Quantidade em píxels que o mouse se moverá no eixo Y a partir da posição atual
- - -
Retorna :
- - -
"""
return self . __request__ ( " /ipc/wingui/mouse/clickatrelative?x= {} &y= {} " . format ( x , y ) )
# Funções Notify
def notify_alert ( self , t : str , m : str ) :
2021-12-30 11:47:24 +00:00
"""
## Notify Alert
Cria um alerta do windows .
- - -
Params :
- t : Título da notificação .
- m : Mensagem exibida pela notificação .
- - -
Retorna :
- - -
"""
2021-12-29 18:16:32 +00:00
t = urllib . parse . quote ( t , " " )
m = urllib . parse . quote ( m , " " )
2021-12-30 11:47:24 +00:00
return self . __request__ ( f " /ipc/wingui/notify/alert?msg= { m } &title= { t } " )
2021-12-29 18:16:32 +00:00
2021-12-30 11:47:24 +00:00
def notify_beep ( self , t : str , m : str ) :
2021-12-29 18:16:32 +00:00
2021-12-30 11:47:24 +00:00
"""
## Notify Alert
Cria um alerta do windows .
- - -
Params :
- t : Título da notificação .
- m : Mensagem exibida pela notificação .
- - -
Retorna :
- - -
"""
2021-12-29 18:16:32 +00:00
t = urllib . parse . quote ( t , " " )
m = urllib . parse . quote ( m , " " )
2021-12-30 11:47:24 +00:00
return self . __request__ ( f " /ipc/wingui/notify/notify?msg= { m } &title= { t } " )
2021-12-29 18:16:32 +00:00
# Funções proc
def proc_exec ( self , cmd : str ) :
"""
2021-12-30 12:40:40 +00:00
## Process execute
Executa um comando cmd localmente na máquina . Para abertura de arquivos , é necessário informar o caminho absoluto do arquivo . No caso de arquivos nativos da Microsoft pode - se apenas escrever o nome do mesmo .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
### Ex:
- wg . proc_exec ( " C: \\ Program Files \\ Internet Explorer \\ iexplore.exe " )
- wg . proc_exec ( " mspaint " )
- - -
Params :
- cmd : Comando CMD a ser executado
- - -
Retorna :
- > " ok "
2021-12-29 18:16:32 +00:00
"""
cmd = urllib . parse . quote ( cmd , " " )
2021-12-30 12:40:40 +00:00
return self . __request__ ( f " /ipc/wingui/proc/exec?cmd= { cmd } " )
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
def proc_kill ( self , pid : int ) :
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
## Process kill
Finaliza o processo com PID informado como parâmetro .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
Params :
- pid : Identificador do processo que se deseja finalizar .
- - -
Retorna :
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- Sucesso : " Êxito, o processo com PID {num_do_pid} foi finalizado. " .
- Falha : Erro .
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
return self . __request__ ( f " /ipc/wingui/proc/kill?cmd= { pid } " )
def proc_all ( self ) :
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
## Process All
Lista todos os processos em execução na maquina robo .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Params:
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Retorna:
Um array de dicionários python . Cada um deles tem o formato :
{
" Pid " : xxx
" Name " : " str "
}
Onde Pid é um inteiro representando o PID do processo , e Name é o nome do processo .
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
return self . __request__ ( " /ipc/wingui/proc/all " )
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
def proc_name ( self , pid : int ) :
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
## Process Name
Obtem o nome do processo através de seu PID .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Params:
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- pid : Número do identificador de processo que se quer saber o nome .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Retorna:
- > Nome do processo correspondente ao PID .
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
return self . __request__ ( f " /ipc/wingui/proc/name?pid= { pid } " )
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
def proc_path ( self , pid : int ) :
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
## Process Path
Retorna o caminho do arquivo que corresponde ao PID informado .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Params:
- pid : Identificador do processo ativo que se quer saber o caminho .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Retorna:
- > Caminho do arquivo correspondente ao PID .
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
return self . __request__ ( f " /ipc/wingui/proc/path?pid= { pid } " )
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
def proc_pids ( self ) :
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
## Process PIDS
Busca todos os processos ativos na máquina e retorna o PID deles .
2021-12-29 18:16:32 +00:00
2021-12-30 12:40:40 +00:00
- - -
#### Params:
- - -
- - -
#### Retorna:
- > Array de inteiros contendo todos os PIDS ativos da máquina .
2021-12-29 18:16:32 +00:00
"""
2021-12-30 12:40:40 +00:00
return self . __request__ ( " /ipc/wingui/proc/pids " )