Procurar palavra na tela do computador.
27/07/2023
0
Queria fazer o seguinte:
Tenho um software rodando no meu computador. Preciso identificar se em algum lugar da tela aparece algo escrito,tipo uma palavra.
Alguém poderia me dar um caminho pra fazer isso.
Rodrigo Bizzotto
Post mais votado
28/07/2023
Você pode capturar o conteúdo da tela (desktop), utilizando as funções de cópia de imagem como bitblt e manipular a imagem capturada em busca do padrão que você procura. Porém, não dá para fazer o mesmo com uma aplicação oculta, já que a imagem só é desenhada quando a janela está visível.
Entretanto, por se tratar de um software "home broker", é muito possível que ele permita o uso de DDE. É comum os administradores de fundos utilizarem o Excel e utilizam DDE para manter a planilha atualizada o tempo todo.
Dê uma olhada em: https://ajuda.nelogica.com.br/hc/pt-br/articles/360044293432-Como-configurar-RTD-DDE-no-Profit
O Excel consegue fazer as chamadas DDE facilmente e você pode implementar via Delphi também.
Arthur Heinrich
Mais Posts
27/07/2023
Arthur Heinrich
Se estamos falando de Windows, que trabalha com mensagens, podemos ter troca de mensagens entre as aplicações. Mas, uma coisa é enviar uma mensagem para uma aplicação qualquer. Outra bem diferente é querer que outra aplicação envie uma mensagem para a sua aplicação, com o conteúdo que você deseja. Isto é válido para aplicações que utilizam DDE (Dynamic Data Exchange), mas não parece ser o seu caso.
Então, só resta o jeito difícil, que é capturar a parte visível da tela e identificar o que está escrito, utilizando um processo de OCR (Optical Character Recognition).
Ou seja, não é tão simples como parece.
Mas, minha curiosidade me faz perguntar o seu objetivo com isso. É possível que haja outra maneira de obter o que você precisa, sem "hackear" outras aplicações.
27/07/2023
Rodrigo Bizzotto
Se estamos falando de Windows, que trabalha com mensagens, podemos ter troca de mensagens entre as aplicações. Mas, uma coisa é enviar uma mensagem para uma aplicação qualquer. Outra bem diferente é querer que outra aplicação envie uma mensagem para a sua aplicação, com o conteúdo que você deseja. Isto é válido para aplicações que utilizam DDE (Dynamic Data Exchange), mas não parece ser o seu caso.
Então, só resta o jeito difícil, que é capturar a parte visível da tela e identificar o que está escrito, utilizando um processo de OCR (Optical Character Recognition).
Ou seja, não é tão simples como parece.
Mas, minha curiosidade me faz perguntar o seu objetivo com isso. É possível que haja outra maneira de obter o que você precisa, sem "hackear" outras aplicações.
Não consegui colocar a imagem aqui, então segue o link abaixo:
https://uploaddeimagens.com.br/imagens/7J-ticI
Veja a imagem, é um print de parte de um software que utilizado na minha máquina mesmo.
Ai queria fazer um sistema que ficasse rodando "ocultamente" (com o objetivo de não atrapalhar a utilização dos outros programas), e que fizesse a leitura da tela. Caso identificasse aquele "5R" ali que circulei por exemplo, em qualquer lugar do monitor, o programa emitiria um aviso na tela. Bem simples.
28/07/2023
Rodrigo Bizzotto
Com essa parte do DDE não vai resolver.
Vou dar mais um exemplo de um software de terceiros (Signal: https://www.tradersoftware.com.br/signal/) que faz algo parecido com oq eu to querendo.
Você abre o Signal, ele não fica minimizado no Windows, fica aparente em algum cantinho da tela.
Ai ele faz a leitura de algumas partes especificas da aplicação aberta do Profit, isso a cada x milissegundos. Itens marcados em 1, 2 e 3 do print abaixo.
https://uploaddeimagens.com.br/imagens/5Onzass
Será que esse Signal tira um print da tela e busca a mudança no padrão de uma área especifica?
Não iria consumir muito processamento fazer isso toda hora em menos de 1 segundo por vez?
28/07/2023
Arthur Heinrich
29/07/2023
Rodrigo Bizzotto
Vou pesquisar sobre isso. Obrigado.
Clique aqui para fazer login e interagir na Comunidade :)