Minha macro clica no lugar errado: causas e solução
Se a sua macro clica onde não deve, quase sempre o problema são as coordenadas. As causas mais comuns, como diagnosticar e como evitar que ela quebre.
Você gravou uma macro, ela funcionou de primeira e, alguns dias depois, começa a falhar. O mouse se move, mas clica ao lado do botão. Se a sua macro clica no lugar errado, a causa quase sempre é a mesma: ela repete coordenadas fixas em uma tela que já não é igual à do momento da gravação. Neste artigo você vai ver por que isso acontece, como diagnosticar passo a passo e o que fazer para a sua macro parar de quebrar.
O sintoma: a macro se move, mas erra o alvo
O problema é fácil de reconhecer. A macro começa, o ponteiro percorre a tela e os cliques caem alguns pixels acima, abaixo ou ao lado de onde deveriam.
Às vezes é pior, porque é intermitente. Uma execução funciona, a seguinte falha e a terceira volta a funcionar. Isso confunde, porque parece que a macro "decide" quando acertar. Na verdade, o que muda não é a macro, e sim a tela em que ela é reproduzida.
Por que acontece: as coordenadas não se adaptam
Uma macro tradicional guarda cada clique como um ponto da tela: tantos pixels a partir da esquerda e tantos a partir do topo. Na reprodução, ela clica exatamente nesse ponto, seja lá o que estiver embaixo.
Isso funciona enquanto tudo continua igual. Para de funcionar quando algo se move:
- A janela não está na mesma posição ou tamanho. Se ela estava maximizada quando você gravou e agora está em um canto, todos os botões estão em outro lugar.
- A resolução ou a escala da tela mudou. Ao trocar de monitor, ou ao mudar a escala do Windows, os elementos mudam de tamanho e de posição.
- A janela se desloca um pouco toda vez que abre. Em um fórum do Keyboard Maestro, um usuário descobriu que a janela de um plugin subia cerca de 20 pixels, mais ou menos a altura de uma barra de título, toda vez que era aberta. Os cliques dele, calculados em relação à janela, erravam sempre pela mesma distância.
- Os botões mudam de tamanho. Um texto mais longo, uma tradução ou uma atualização do programa bastam para mover um botão.
- As listas são reordenadas. Se o item que você procura passa da terceira para a quinta linha, a macro continua clicando na terceira.
- Os elementos demoram a aparecer. Se a macro clica antes de o botão terminar de carregar, ela clica em um espaço vazio.
Como diagnosticar
Antes de mudar qualquer coisa, descubra o que está diferente em relação à gravação. Repasse esta lista:
- A janela está na mesma posição e com o mesmo tamanho? Compare com como ela estava quando você gravou.
- Você está usando o mesmo monitor? Se tiver vários, confira em qual a janela abre.
- A resolução e a escala do Windows são as mesmas? Verifique as configurações de tela.
- A tela tinha terminado de carregar antes do clique? Veja se a macro se adianta a algum elemento lento.
- O conteúdo mudou? Uma atualização, uma lista com mais itens ou um aviso novo podem deslocar tudo.
Se a falha é intermitente, preste atenção ao ponto 4. Quando uma macro às vezes acerta e às vezes não, a causa costuma ser o tempo de carregamento, e não a posição.
Soluções gerais
Estas soluções funcionam com qualquer ferramenta de macros, não só com uma:
- Fixe a posição e o tamanho das janelas. Sempre abra o programa maximizado ou na mesma posição antes de reproduzir.
- Use sempre o mesmo monitor e não mude a escala da tela entre a gravação e a reprodução.
- Acrescente uma margem de tempo onde houver telas lentas, para que o clique não chegue antes do botão.
- Pare de depender só das coordenadas. Esta é a solução de fundo. Em vez de clicar "no ponto X, Y", a macro deveria procurar o elemento, pela imagem ou pelo contexto, e clicar onde o encontrar.
No caso do fórum do Keyboard Maestro, a solução definitiva foi exatamente essa. O usuário parou de clicar em relação ao canto da janela e passou a clicar em relação a uma imagem encontrada na tela.
Como o Modo inteligente resolve isso
O Macro Quantic Pro tem uma opção pensada para esse problema: o Modo inteligente. Ele fica nas opções de captura da seção Gravação e vem ativado por padrão.
Quando você grava com o Modo inteligente, o programa guarda uma pequena imagem do que há ao redor de cada clique. Na reprodução, antes de clicar, ele verifica se o que está naquele ponto se parece com a imagem:
- Se for parecido, ele clica onde você gravou, sem perder tempo.
- Se não for parecido, ele procura ao redor a área que melhor corresponde e corrige o clique para lá. Se não encontrar por perto, tenta buscas mais amplas, por exemplo lendo o texto do botão e procurando-o na tela.
- Se o botão ainda não apareceu, ele tenta de novo por um breve momento antes de desistir.
Assim ele cobre os casos mais comuns: uma janela que mudou de lugar, um botão que mudou de tamanho, uma lista reordenada ou um botão que demora um pouco a aparecer. A reprodução também mantém o ritmo exato da gravação, com as mesmas pausas entre as ações.
O Modo inteligente está disponível durante o teste gratuito de 7 dias e nos planos Starter, Pro e Enterprise. O plano Free não o inclui: no Free, a macro repete apenas as coordenadas salvas. Você pode comparar os planos na página de preços.
Limites honestos
Nenhum método acerta sempre, e o Modo inteligente também não. Vale saber quando ele pode falhar:
- Se não encontrar nada que corresponda bem o suficiente, ele não arrisca: clica no ponto gravado, como uma macro normal.
- Se dois lugares forem quase iguais, por exemplo duas linhas quase idênticas de uma lista, ele também não escolhe ao acaso. Deixa o clique onde foi gravado.
- Se o elemento mudar completamente de aparência, a imagem guardada já não serve para encontrá-lo.
- Se o elemento demorar muito a aparecer, a breve espera não basta. Nesse caso, é melhor acrescentar uma margem de tempo ou dividir a macro em partes.
Por isso, mesmo com o Modo inteligente ativado, continua sendo uma boa ideia manter as janelas em um lugar estável. Quanto mais a tela se parecer com a da gravação, mais confiável será a macro.
Experimente o Modo inteligente
Se as suas macros falham porque as posições mudam, você pode baixar o Macro Quantic Pro grátis na Microsoft Store e testar o Modo inteligente durante o teste de 7 dias, sem cartão. Na página do gravador de macros há um resumo de como ele grava e reproduz.
Perguntas frequentes
Por que minha macro clica em outro lugar?
Porque ela repete as coordenadas salvas e a tela já não é a mesma. O mais comum é que a janela tenha mudado de lugar, que a resolução ou a escala tenha mudado, ou que o botão ainda não tivesse carregado quando o clique chegou.
O que é melhor: coordenadas ou reconhecimento de elementos?
As coordenadas são rápidas e suficientes se a tela nunca muda. Se ela muda, é mais confiável localizar o elemento antes de clicar. O ideal é combinar as duas coisas: uma tela estável e uma ferramenta que confira onde está o botão.
A resolução da tela afeta minhas macros?
Sim. Se você muda a resolução ou a escala do Windows, os elementos mudam de tamanho e de posição. Uma macro baseada só em coordenadas pode deixar de acertar. O mais seguro é reproduzir com as mesmas configurações com que você gravou.
Como faço minha macro esperar um botão carregar?
Acrescente uma margem de tempo antes do clique nas telas lentas. No Macro Quantic Pro, o Modo inteligente tenta de novo por um breve momento se o botão ainda não estiver lá. Para esperas longas, você pode usar um robô OCR que inicie a macro quando um texto específico aparecer.
Fontes
- Fórum do Keyboard Maestro: Move and click inconsistent when repeating the macro