Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Programa auto-click que ativasse por cor


Posts recomendados

Ola, sou novo na programação, gostaria de uma pequena ajuda.
Queria desenvover um programa que desse um click com o botão esquerdo do mouse em um determinado local quando um outro local mudasse para uma cor predeterminada. Com botões de ligar/desligar sem precisar modificar as pastas dos lugares em que utilizasse a função e quando ativado, ficasse totalmente opaco.

 

no geral seria um auto-click com a função de clicar quando em cima da cor predeterminada, um pequeno local de 0,3 centimetro de diametro no centro da tela em uma config de 1920 x 1080 p.

Por acaso é possivel? alguém poderia me ajudar?

 

Ficaria muito grato

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@jonas Rodrigues da @jonas Rodrigues da     

 

Em 06/09/2018 às 14:22, jonas Rodrigues da disse:

Queria desenvolver um programa que desse um click com o botão esquerdo do mouse em um determinado local quando um outro local mudasse para uma cor predeterminada.

 

em pascal para verificar a cor de uma determinada posição da tela você pode usar o comando cor := GetPixel(x,y);   no modo gráfico ,  onde  x ,são as coordenadas x coluna e y linha  da tela , assim depois de pegar o valor da cor nessa posição você compara com a cor que você quer que ative o click do mouse ,    mas para um melhor entendimento ,  diga aí como se daria a mudança de cor nessa posição da tela ?

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá, estou precisando de um programinha assim também. Um programa que desse um click com o botão esquerdo do mouse em um determinado local quando um outro local mudasse para uma cor predeterminada. Seria apenas três cores que se alternariam em um local fixo na tela e a mudança dessas cores definiria três locais onde o  click aconteceria. Será que consigo?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá,

 

Eu gostaria de fazer o mesmo procedimento usando um Excel.
Eu consegui fazer o excel clicar na tela, mas não encontrei como fazer ele capturar a Cor do Pixel para analisar.

 

Se não for possível fazer utilizando excel, qual linguagem de programação seria ideal para desenvolver um software nesse sentido de clicar em razão da cor de um Pixel?

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Marco Nicolletti    você pode usar o compilador  / IDE  Blitz Basic 3D  desse site

https://www.baixaki.com.br/site/dwnld67000.htm

e com esse código nele você consegue pegar a qtd das cores vermelha  verde e azul de cada pixel 

Graphics 800,600                     ; comentarios apos ponto_e_virgula
SetBuffer BackBuffer()               ; liga o beffer da tela
For t=1 To 100                       ; loop rpete 100 vezes
  Color Rnd(255), Rnd(255), Rnd(255) ; gera cores aleatorias
  Rect Rnd(750),Rnd(550),80,80,1     ; cria varios Quadrados coloridos

Next
While Not KeyHit(1)                  ; loop enquanto nao teclar ESC
  Color 255,255,255                  ; cor branca
  Rect 0,0,400,20                    ; desenha um Quadrado em cima da tela
  GetColor MouseX(),MouseY()         ; pega a cor de um unico Pixel na posição da ponta da setinha do mouse
  ; mostra a posição x e y do mouse e a qtd das cores verm verde e azul do pixel
  Text 1,1, "quadrado em "+MouseX()+","+MouseY()+" é R=" + ColorRed() + " G=" + ColorGreen() + " B=" + ColorBlue()
  Flip                               ; mostra a tela
Wend
End

e na aba help você consegue muitos exemplos de como fazer seus códigos , e para volta atrás clique em BackSpace

84655782_telablitz3D.thumb.jpg.25cc5621f6cc520bb6c17f8e080b5f07.jpg

Link para o comentário
Compartilhar em outros sites

  • mês depois...

@Eloizio Coelho @Marco Nicolletti    e você  pode usar esse aqui do c / c++ , que você insere as coordenada onde pegar a cor e o valor RBG das cores e onde clicar com o mouse , caso surja nessa posição tal cor ,    e esse programa foi feito com o visual studio comunity 2019 , pois em compiladores mais antigos não funcionou .

#define _CRT_SECURE_NO_WARNINGS           // para usar scanf e outras funções no visual studio
                                          // por desligar os warnings " Alertas do compilador"

/*             programa feito no VisuaL Studio Comunity 2019              */

#include <stdio.h>                        // biblioteca de entrada e saida de dados
#include <Windows.h>                      // biblioteca para certos comandos no ambiente windows
int main()                                // função PrincipaL de todo programa em linguagem c
{
    INPUT in;                             // 
    POINT p;                              // comandos do mouse
    in.type = INPUT_MOUSE;
    in.mi.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
    in.mi.time = 0;

    HDC tela = GetDC(0);                   // para acessar a tela
    COLORREF    clrf;                      // função para usar cores
    GetCursorPos(&p);                      // pega a posição da setnha do mouse
    printf("a ponta da setinha do mouse esta na posicao:\n");
    printf("Setinha coluna--= %d\n", p.x); // escreve o numero da coluna onde está a ponta da setinha do mouse
    printf("Setinha linha  -= %d\n", p.y); // escreve o numero da linha onde está a ponta da setinha do mouse

    int clk_x, clk_y, p_x, p_y,op;
    int cr=43, cg=47, cb=155,cont=0;       // cor azul celeste escuro
    printf("numero da coluna da tela onde detectar a cor ");
    scanf("%d", &p_x);
    printf("numero da linha da tela onde detectar a cor ");
    scanf("%d", &p_y);
    printf("numero da coluna da tela onde clicar ");
    scanf("%d", &clk_x);
    printf("numero da linha da tela onde clicar ");
    scanf("%d", &clk_y);
    printf("\nUm exemplo :\n");
    printf("a cor azul celeste escuro tem o RGB  => R= 43 , G= 47, B= 155\n");
    printf("se não souber as cores tecle 0 , e elas serao estabelecidas com R=43  G=47  B=155\n");
    printf(" 0 = não sei os numeros das cores\n");
    printf(" 1 = informarei os numeros das cores\n");
    scanf("%d", &op);
    if (op == 1)
    {
        printf("informe o numero referenta a cor vermelha R do (RGB) de 0 ate 255 ");
        scanf("%d", &cr);
        printf("informe o numero referenta a cor verde G do (RGB) de 0 ate 255 ");
        scanf("%d", &cg);
        printf("informe o numero referenta a cor azul B do (RGB) de 0 ate 255 ");
        scanf("%d", &cb);
    }
    /*
    int x = 1308, y = 238, cont = 0;       // especificar as posições onde pegar a cor
    p.x = 1483;                            // posiciona a setinha do mouse na coluna da tela onde vai clicar
    p.y = 16;                              // posiciona a setinha do mouse na linha da tela onde vai clicar
    */

    //Sleep(5000);                         // para e espera cinco Segundos e depois continua
    printf("tecle   ENTER  e vai inciar\n");
    op = getchar();                        // duas vezes pois scanf deixa um newline no buffer
    op = getchar();                        // e passa direto , entao precisa  desse outro aqui
    printf("iniciou\n");
    printf("tecle o botao INSERT para parar\n");
    while (!GetAsyncKeyState(VK_INSERT))   // repete enquanto não pressionar a tecla Insert do teclado
    {
        clrf  = GetPixel(tela, p_x, p_y);  // pega a cor desse ponto da tela (  1308 , 238  )
        int r = GetRValue(clrf);           // pega a qtd de cor vermelha ( 0 até 255 ) e armazena em "r"
        int g = GetGValue(clrf);           // pega a qtd de cor verde ( 0 até 255 ) e armazena em "g"
        int b = GetBValue(clrf);           // pega a qtd de cor azul ( 0 até 255 ) e armazena em "b"
                                           // a mistura dessas cores ( r g b ) formam uma cor finaL resultante
                                           // quanto maior o valor a car será mais clara
        if (r == cr && g == cg && b > cb)  // esses valores significam que a cor nessa posição 
                                           // é azul escuro que é a mistura de 43 de vermelho ( r ) +
                                           // 47 de verde ( g ) + qq valor acima de zero de cor azul ( b )
        {
            // aqui colocar o que fazer caso encontre a cor azul ness posição
            p.x = p_x;
            p.y = p_y;
            SetCursorPos(p.x, p.y);        // move a setinha do mouse para essa posição da tela do Monitor
            SendInput(1, &in, sizeof(in)); // clica na posição da ponta da setinha do mouse e solta 
            cont++;                        // incrementa a qtd de click do mouse
            Sleep(1000);                   // aguarda por um Segundo e continua depois
        }
        //if (cont == 2)break;             // se clicou duas vezes então para de repetir esses comando ali
                                           // de cima e sai desse Loop " enquanto "
    }
    printf("total de Vezes Que Apareceu a cor azul --> %d\n\n\n",
        cont);                             // e vem para essa Linha e escreve essa msg
    ReleaseDC(0, tela);                    // e termina o programa
    return 0;                              // e retorna para o windows com o valor zero
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...