Bem-vindo à documentação do PyAutoGUI! — documentação do PyAutoGUI

contente

PyAutoGUI permite que seus scripts Python controlem o mouse e o teclado para automatizar interações com outras aplicações. A API é projetada para ser simples. PyAutoGUI funciona no Windows, macOS e Linux, e roda no Python 2 e 3.

Para instalar com pip, execute pip install pyautogui. Veja a Instalação para mais detalhes.

O código-fonte está disponível em: https://github.com/asweigart/pyautogui

O PyAutoGUI tem várias funcionalidades:

  • Mover o mouse e clicar nas janelas de outros aplicativos.
  • Enviar teclas para aplicativos (por exemplo, para preencher formulários).
  • Tirar capturas de tela e, dado uma imagem (por exemplo, de um botão ou caixa de seleção), encontrá-la na tela.
  • Localizar a janela de um aplicativo e mover, redimensionar, maximizar, minimizar ou fechá-la (apenas para Windows, atualmente).
  • Exibir caixas de alerta e mensagens.

Aqui está um vídeo do YouTube de um bot jogando automaticamente o jogo Sushi Go Round. O bot observa a janela do aplicativo do jogo e procura imagens de pedidos de sushi. Quando encontra um, clica nos botões dos ingredientes para fazer o sushi. Ele também clica no telefone do jogo para pedir mais ingredientes conforme necessário. O bot é completamente autônomo e pode terminar todos os sete dias do jogo. Este é o tipo de automação que o PyAutoGUI é capaz de.

import pyautogui screenWidth, screenHeight = pyautogui.size() # Obter o tamanho do monitor principal. screenWidth, screenHeight (2560, 1440) currentMouseX, currentMouseY = pyautogui.position() # Obter a posição XY do mouse. currentMouseX, currentMouseY (1314, 345) pyautogui.moveTo(100, 150) # Mover o mouse para as coordenadas XY. pyautogui.click() # Clicar com o mouse. pyautogui.click(100, 200) # Mover o mouse para as coordenadas XY e clicar. pyautogui.click('button.png') # Encontrar onde button.png aparece na tela e clicar nele. pyautogui.move(400, 0) # Mover o mouse 400 pixels para a direita de sua posição atual. pyautogui.doubleClick() # Clique duplo com o mouse. pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad) # Usar função de tweening/easing para mover o mouse em 2 segundos. pyautogui.write('Olá mundo!', interval=0.25) # digitar com pausa de um quarto de segundo entre cada tecla pyautogui.press('esc') # Pressionar a tecla Esc. Todos os nomes das teclas estão em pyautogui.KEY_NAMES with pyautogui.hold('shift'): # Pressionar a tecla Shift para baixo e segurá-la. pyautogui.press(['left', 'left', 'left', 'left']) # Pressionar a tecla de seta para a esquerda 4 vezes.

A tecla Shift é liberada automaticamente.

pyautogui.hotkey('ctrl', 'c') # Pressionar a combinação de teclas de atalho Ctrl-C. pyautogui.alert('Esta é a mensagem a ser exibida.') # Fazer uma caixa de alerta aparecer e pausar o programa até que OK seja clicado.

Este exemplo arrasta o mouse em uma forma de espiral quadrada no MS Paint (ou em qualquer programa de desenho gráfico):

distância = 200 enquanto distância > 0: pyautogui.drag(distância, 0, duração=0.5) # mover para a direita distância -= 5 pyautogui.drag(0, distância, duração=0.5) # mover para baixo pyautogui.drag(-distância, 0, duração=0.5) # mover para a esquerda distância -= 5 pyautogui.drag(0, -distância, duração=0.5) # mover para cima

_images/square_spiral.png

O benefício de usar o PyAutoGUI, em vez de um script que gera diretamente o arquivo de imagem, é que você pode usar as ferramentas de pincel que o MS Paint fornece.

Envie perguntas para [email protected]

P: O PyAutoGUI pode funcionar em Android, iOS ou aplicativos de tablet/smartphone.

A: Infelizmente não. PyAutoGUI só funciona no Windows, macOS e Linux.

P: O PyAutoGUI funciona em configurações de múltiplos monitores.

A: Não, neste momento o PyAutoGUI só lida com o monitor principal.

P: O PyAutoGUI faz OCR?

A: Não, mas esta é uma funcionalidade que está no planejamento.

P: O PyAutoGUI pode fazer keylogging ou detectar se uma tecla está atualmente pressionada?

A: Não, o PyAutoGUI não pode fazer isso atualmente.

_images/sorcerers_apprentice_brooms.png

Como as vassouras encantadas do Aprendiz de Feiticeiro programadas para continuar enchendo (e depois transbordando) a banheira com água, um bug no seu programa pode fazê-lo sair do controle. É difícil usar o mouse para fechar um programa se o cursor do mouse está se movendo sozinho.

Como uma característica de segurança, uma função de segurança é ativada por padrão. Quando uma função do PyAutoGUI é chamada, se o mouse estiver em qualquer um dos quatro cantos do monitor principal, será levantada uma pyautogui.FailSafeException. Há um atraso de um décimo de segundo após chamar cada função do PyAutoGUI para dar ao usuário tempo para jogar o mouse em um canto e acionar a segurança.

Você pode desativar essa proteção configurando pyautogui.FAILSAFE = False. EU RECOMENDO ENCARECIDAMENTE QUE VOCÊ NÃO DESATIVE A PROTEÇÃO.

O atraso de décimo de segundo é definido pela configuração pyautogui.PAUSE, que é 0.1 por padrão. Você pode alterar esse valor. Há também uma configuração pyautogui.DARWIN_CATCH_UP_TIME que adiciona um atraso adicional no macOS após eventos de teclado e mouse, uma vez que o sistema operacional parece precisar de um atraso após o PyAutoGUI emitir esses eventos. Está definido como 0.01 por padrão, adicionando um atraso adicional de centésimo de segundo.

Conteúdos:

Esta documentação ainda está em andamento.

© Copyright 2019, Al Sweigart Revisão 24d638dc.

Construído com Sphinx usando um tema fornecido por Read the Docs.

Resumir
PyAutoGUI é uma biblioteca Python que permite automatizar interações com o mouse e teclado em aplicações, funcionando em Windows, macOS e Linux. Para instalar, utilize o comando 'pip install pyautogui'. A biblioteca oferece recursos como mover o mouse, clicar, enviar teclas, tirar capturas de tela e localizar janelas de aplicativos. Um exemplo prático é um bot que joga automaticamente o jogo Sushi Go Round, clicando em botões conforme necessário. PyAutoGUI também possui um recurso de segurança que interrompe a execução se o mouse for movido para um dos cantos da tela, evitando comportamentos indesejados. A biblioteca não suporta Android, iOS ou configurações de múltiplos monitores, e não realiza OCR ou keylogging. A documentação está em desenvolvimento e pode ser acessada no GitHub. É recomendável não desativar a função de segurança e ajustar o tempo de pausa entre as funções para evitar problemas durante a automação.