verificar a cor num determinado ponto (x,y) em aplicativo de terceiro.
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á.
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
Curtidas 0
Respostas
Andre Santos
10/12/2013
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 ???
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 ???
GOSTEI 0
Andre Santos
10/12/2013
Depois de muitas pesquisas e testes descobri em parte o que preciso:
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.
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.
GOSTEI 0