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á.
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
Curtir tópico
+ 0
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 ???
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:
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)