Jump to content
wjs

PixelChecksum

Recommended Posts

Gostaria de saber se de alguma forma e possível usar o PixelChecksum para retornar as coordenadas x,y de um exato ponto que mudou na região especificada.

Share this post


Link to post
Share on other sites

Oi, faz tempo que eu não acesso o fórum.

Bom, a tela do computador trabalha com a origem do plano cartesiano no canto superior esquerdo do monitor. Quanto tu corre no sentido horizontal, da esquerda para a direita o teu valor da coordenada X vai aumentar.
Quando tu corre com o mouse no outro eixo, de cima para baixo, partindo da origem (canto superior esquerdo) tuas coordenadas Y vão aumentando de 0 até a coordenada máxima.

As coordenadas máximas sáo a resolução da tua tela. Existem 2 macros no autoit que te dão a resolução da tela. é o @desktopWidth e o @desktopheight
Se tu usar a função "consolewrite" tu consegue fazer esses valores aparecerem no prompt do editor do autoit.
Experimenta " consolewrite(@desktopwidth & " / " & @desktopheight) " ... isso deve mostrar 2 valores que sao as respectivas dimensões de largura e altura do teu monitor

agora, depois desses conceitos, pra usar o PixelChecksum:

a sintaxe do comando é a seguinte PixelChecksum ( left, top, right, bottom [, step = 1 [, hwnd [, mode = 0]]] )

significa o seguinte.
left = o valor X do canto SUPERIOR ESQUERDO
top = o valor Y do canto SUPERIOR ESQUERDO

right= o valor X do canto INFERIOR DIREITO
bottom= o valor Y do canto INFERIOR DIREITO

num diagrama seria basicamente

left, top _____
######|_____|
######|_____|right,bottom

sacas?

nos outros 3 parametros restantes:

step step é quantos pixels a função vai analisar enquanto ela vasculha a imagem. Para imagens muito grandes se vc por um valor maior que 1 pode melhorar a velocidade de processamento, pq isso demora um pouco hwnd hwnd é um identificador que direciona a analise para uma janela específica. Todo processo no computador tem uma handle, é como um código único que cada processo tem. mode mode eu acredito ser um parametro que permite escolher outro logaritmo de análise. EU acho que o padrão funciona bem, então nesse parametro nem precisa mexer.


Bom.. agora, pra ti analisar uma trecho da tela tu tem que ter FUNDAMENTALMENTE 2 pares de coordenadas e uma handle.
step e mode são secundários, tu só vai alterar eles se realmente precisar.

Agora, primeiro de tudo, tens que encontrar a handle da janela aonde os graficos que tu quer analisar aparecem.
Existe instalado junto com o Autoit uma ferramenta chamada "Autoit Window Info Tool"

Esse programinha é super útil, nele existe um icone que tem a forma de uma mira. Quando vc clica nele, segura, arrasta e larga na janela que vc quer analiser, ele te dá todas as informaçoes da janela.
Posição, tamanho, HANDLE! e um monte de coisa
Assim vc consegue extrair o valor da HANDLE. Bom.. agora vc tem que saber qual fatia da tela vc quer analisar.

Pra isso, eu particularmente uso uma função do autoit que me dá a posição do mouse.
Eu estaciono o ponteiro +- no canto superior esquerdo, rodo a rotina e ela me devolve o TOP e o LEFT

copio esses valores e repito o processo, mas agora estacionando no mouse no RIGHT e BOTTOM ou inferior direito!

A função é a seguinte (tirada do exemplo do manual)

Local $aPos = MouseGetPos()MsgBox("", "Mouse x, y:", $aPos[0] & ", " & $aPos[1])

Vai aparecer uma janela com as coordenadas.
LEMBRA! A ORIGEM OU 0,0 É NO CANTO SUPERIOR ESQUERDO DA TELA. diferente do que a gente aprende na escola.

faz algum tempo que eu n uso o autoit mas acredito que os valores que a função retorna quando ela nao apresenta erros é

Success: the checksum value of the region. Failure: 0.

tu tem que brincar um pouco com ela, e ver oq acontece. Mas é basicamente isso.

Abraço! E nao desiste, autoit é ****, Super útil.

  • Like 1

Share this post


Link to post
Share on other sites

faz sentido o que vc disse mas não conseguir fazer ele me retornar as coordenadas do que mudou na região.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×