Como ler texto da tela em uma macro
OCR de tela dentro de uma macro do Windows: leia um número, um status ou um nome de qualquer janela e depois decida o que fazer com ele.
Atualizado em 18 de setembro de 2026 · A leitura de texto na tela faz parte do plano Pro do Myna Recorder; toda conta nova pode experimentá-la grátis por 7 dias.
1. O que o read_text faz
A maioria das ferramentas de macro sabe clicar e digitar, mas não consegue dizer o que a tela mostra. read_text lê um retângulo da tela para uma variável, e a partir daí o valor pode ser digitado em outro lugar, comparado ou usado em uma mensagem:
total = read_text(region=(820, 400, 180, 40), single_line=True)
message_box("The order total was ${total}")
2. Escolha uma região
Sempre passe region=(x, y, width, height). Ler a área de trabalho inteira a reduz até que o texto comum da interface fique ilegível. Uma região do tamanho do campo que interessa é rápida e precisa. single_line=True junta em uma única linha o que voltar, que é o que você quer para um número ou um nome. Cada número da região pode ser uma variável ou uma soma, então uma região pode acompanhar uma correspondência encontrada com wait_for.
3. Três leitores
| engine= | O que é | Gasta créditos | Vai junto no programa exportado |
|---|---|---|---|
| "builtin" | O padrão. Funciona no seu computador. | Não | Sim |
| "tesseract" | Um segundo leitor local. Lê algumas telas melhor e outras pior que o integrado, e aceita page_mode= para controlar como a imagem é dividida em linhas. Experimente quando uma leitura chega perto, mas erra. | Não | Sim |
| "ai" | Um modelo de transcrição no nosso servidor, para o texto que os dois leitores locais leem errado. | Sim | Não |
O mecanismo é escolhido em cada passo, então uma mesma macro pode usar o leitor grátis em todo lugar e o leitor de IA no único campo que importa.
4. Limpe e use o resultado
total = read_text(region=(820, 400, 180, 40)).to_number()
if total < 1000:
notify("Total looks low: ${total}")
Os métodos limpam o que voltou; .to_number() é o que você mais vai usar. Uma região em branco guarda um texto vazio e a execução continua, então teste a condição que você escrever tanto com um valor quanto com um texto vazio. O painel Variáveis mostra cada variável ao vivo durante a execução, e é o jeito mais rápido de ver o que o leitor realmente devolveu.
5. Quando perguntar à IA
read_text transcreve. Para raciocinar sobre a tela, use ask_ai: “quantas linhas estão em vermelho?”, “há uma caixa de diálogo de erro?”. Três funções: "count" devolve um número e onde está cada coisa, para que a macro possa clicar nela; "explain" devolve uma frase para um log ou uma notificação; "read" transcreve com o modelo que você escolheu. Dê a ele uma região pequena pelo mesmo motivo: um modelo consegue contar coisas em uma área de trabalho inteira que depois não consegue localizar. Cada chamada gasta créditos, e uma execução é limitada a 60 chamadas à IA. Os detalhes estão no manual.
6. Vigie um texto enquanto a macro é executada
Um passo lê uma vez, onde você o colocou. Uma linha de vigilância configurada como Perguntar à IA olha durante toda a execução, ou sozinha depois de Iniciar vigilância, e dispara quando a resposta aparece ou desaparece. Ela pode mostrar um pop-up, enviar uma mensagem do Telegram ou do Discord com uma captura de tela, ou parar a macro. É assim que você fica sabendo do aviso de “sessão expirada” às 3 da manhã sem um passo para isso em cada loop.
7. Custos, planos e exportação
- A leitura de texto na tela e ask_ai estão incluídos no plano Pro, que também traz 3.000 créditos por mês. Os dois leitores locais nunca gastam um crédito.
- engine="ai", ask_ai e as linhas de vigilância com IA gastam créditos e impedem a exportação como programa. Uma macro que lê com o leitor integrado ou com o Tesseract é exportada sem problemas, com o leitor dentro do arquivo.
- Os planos e os pacotes de créditos estão na página de preços.