PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum verificar a cor num determinado ponto (x,y) em aplicativo de terceiro. #463498

10/12/2013

0

Não consigo achar nenhuma força de fazer este tipo de comparação, acho as funções de cores as mais dificeis de se trabalhar.
O que pretendo é mais o menos assim:
Digamos que tenho um programa que exiba cores aleatórias em uma janela.
Então quero fazer um aplicativo para 'olhar' a posição 100,100 desta janela de cores dai verificar se a cor é azul caso seja
eu mandaria um clike esquerdo do mouse por exemplo.

À quem puder dar uma dica ou um exemplo fico grato desde já.


Andre Santos

Andre Santos

Responder

Posts

10/12/2013

Andre Santos

Achei esta função pesquizando por ai na net ela pega a função onde o mouse esta apontando:


function DesktopColor(const X, Y: Integer): TColor;
var
c: TCanvas;
begin
c := TCanvas.Create;
try
c.Handle := GetWindowDC(GetDesktopWindow);
Result := GetPixel(c.Handle, X, Y);
finally
c.Free;
end;
end;


Como eu chamaria esta função dentro de um timer passando como handle um outro aplicativo que esta em execução por exempo quero verificar a cor do local onde escreve do bloco de notas ???
Responder

Gostei + 0

19/12/2013

Andre Santos

Depois de muitas pesquisas e testes descobri em parte o que preciso:

    c.Handle := GetWindowDC(WindowFromPoint(pt2));


com esta mudança consigo pegar o pixel dentro da janela de qual aplicativo.

Porem, preciso usar isso num timer para ficar verificando a cor constantemente, dai vem o problema, não posso sobrepor outra janela sobre o ponto o ser verificado senão ele simplesmente não ver a cor na janela de traz, fiz alguns testes com ScreenToClient mas sem resultado, Preciso verificar um pixel numa janela em segundo plano, desde de ja grato a quem puder colaborar.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar