Dúvida para Implementar Ideia

Muito obrigada Douglas, e me desculpe por todo trabalho, preciso estudar bem mais sobre o assunto, pra mim ainda é tudo novo, e venho tentando aprender um pouquinho pela internet dentro do tempo que tenho um espacinho, mas vou procurar fazer um curso para tornar as coisas mais claras pra mim, tenho muito a aprender ainda. :open_mouth:
Obrigada de verdade pela paciência e ajuda quanto a tudo.

Oxe mais que estranho o e-mail ter rejeitado.
De qualquer forma, download realizado aqui, vou levar para empresa e verificar se consigo testar, depois vou ajustando conforme comentou, mas acredito que vai rodar lindamente. :smiley:
Muito mas muito obrigada mesmo.

De nada, vou ficar aguardando pra saber se deu certo :slight_smile:

Douglas, bom dia.

Acabei de realizar o teste, esta funcionando lindamente como disse rss, vou continuar testando durante o meu dia a dia, mas acredito que não vai ocorrer problemas. Fiz o recorte e ele identifica com sucesso, muitíssimo obrigada, e parabéns por esse projeto, você é demais. :smiley:
Estou eufórica com isso, é muito demais esse projeto, você não faz ideia do quanto me ajudou e otimizou minha vida aqui, no momento eu não consigo te pagar por isso, mas gostaria de mais a frente te dar uma $ por isso, se não tiver problemas tenta me encaminhar sua conta nesse e-mail que posso te transferir, veja se não vai voltar, pode demorar um pouquinho porque ainda não to podendo, e considera uma lembrança pela minha gratidão, mas conta com isso.
Que Deus continue te abençoando, obrigada.

Douglas,

Uma duvida, e não me mate por isso, quando o clicador realiza a função de encontrar o checkbox especifico o que esta rodando muito bem,ele habilita pra mim um botão “Imprimir Capa” , onde eu preciso clicar com mouse, e ira gerar um download, sabe me dizer o que consigo fazer para que no momento que o checkbox encontre o numero e eu clique enter alem de selecionar, ele também já pressione o botão “Imprimir Capa”, a logica é a mesma utilizada para os números, porem somente com a função “Imprimir Capa” percebi um pouco tarde esse detalhe, ele não mantem uma altura padrão . Muda muita coisa pra incluir mais essa função no clicador, ele poderia ser reconhecido pelo Ctrl-F também, mas dai não sei qual a maneira mais simples de executar, tem alguma ideia?

Obrigadaaaaa.

Fico muito feliz que deu certo e que Deus te abençou através da minha vida, essa alegria já é meu pagamento :smiley: Que Deus continue te abençoando!

Eu acho que, o código que o programa já tem pode ser bem reutilizado para implementar essa nova funcionalidade; principalmente através da classe BuscadorDeImagemDentroDeImagem.

É só uma questão de criar uma nova Área Retangular para buscar pelo botão, ter uma imagem do botão na Pasta “images”, e usar a classe BuscadorDeImagemDentroDeImagem para buscar pelo Botão dentro desta nova Área Retangular.

Pra clicar no Botão, o programa precisará de um gatilho, que pode ser uma outra Tecla do Teclado (talvez a tecla “Pause Break” ou “Scroll Lock” que parecem ser inúteis rsrs), ou, ele pode ser programado para clicar no botão após clicar na checkbox.

O que acontece é que o programa não tem uma Arquitetura bem pensada para o crescimento dele, porque pra fazer isso é preciso ter uma visão clara de como ele irá crescer. Começar adicionar funcionalidades nele sem refatorá-lo provavelmente vai transformá-lo em uma bagunça, dificultando mexer no código dele cada vez mais.

Outro ponto importante que você precisa levar em consideração é que um Clicador como esse está longe de ser a forma ideal para esse tipo de problema. Pelo que pesquisei, seria com uma Extensão no Navegador, que permite fazer mais que o Clicador, é mais fácil de fazer, tem menos chance de errar, pode dispensar configurações, e foram pensadas justamente pra isso (pelo que me lembro, se entendi bem, os criadores do sistema de extensões do chrome dizem que uma ótima finalidade em criar extensões é adicionar funcionalidades em páginas web por si só, sem depender dos criadores da página para adicionar funcionalidades, como é o seu caso).
Parece-me que teria sido muito mais rápido e fácil, e o resultado seria melhor, se essa solução tivesse sido feita (ou venha a ser feita) com uma extensão para o navegador.

Eu não fiz com uma extensão porque não sei nem o básico de Javascript, mas se você pretende seguir automatizando seu fluxo de trabalho nesse sistema web, o melhor que tem a fazer é aprender Javascript e HTML, e talvez um pouquinho de CSS; com esse conhecimento você já vai conseguir fazer uma Extensão e permitir que ela cresça.

Então agora acho que você precisa refletir sobre isso:

  • O que você espera desse programa para o futuro? Deseja continuar aumentando as funcionalidades de automação dele? Se sim, acho melhor você deixar esse programa como ele está e partir para a criação de uma Extensão de Navegador, vai ser bem melhor.
  • Se essa é a última funcionalidade a ser adicionada ao programa, se você está certa que não precisará modificá-lo depois para adicionar novas funcionalidades, então é viável mexer no código dele para adicionar essa funcionalidade apenas; ela seria então adicionada “rapidamente” (talvez alguns dias?) meio que na gambiarra, porque adicioná-la direito exigiria uma refatoração lenta na arquitetura (muitos dias, e muita análise para saber “pra onde” o programa vai crescer) que eu acho que não vale a pena fazer nesse programa porque ele não é uma boa solução pra esse tipo de problema: ele é a ferramenta errada, a Extensão seria a ferramenta certa.

Se bem que, também há outras opções que não havia pensado, como consumir uma API REST do sistema (se ele tiver), ou utilizar um Navegador sem GUI que é controlado pelo código. Essas opções automatizariam o processo fazendo o trabalho sem que você tenha que abrir o Navegador. Talvez o sistema também ofereça outro tipo de API que você poderia criar um programa para consumir.

Para automatizar o máximo, você teria que analisar todo seu fluxo de trabalho e separar o que um programa pode fazer do que só você pode fazer, assim, seria possível criar um programa onde você faz só o necessário e o programa faz o resto. Por exemplo, você usa Ctrl+F para digitar esses Números, mas da onde vem esses Números? Não seria possível fazer um programa que pega todos esses números automaticamente para que você não tenha que inserí-los manualmente? E depois que você clica em “Imprimir Capa” e os downloads são feitos, o que deve ser feito com esses Dowloads? Mandar para Imprimir? Enviar por e-mail? Você precisa analisar seu fluxo de trabalho e criar sua estratégia de automação a longo prazo.

Automatizar um fluxo de trabalho ao máximo não é algo trivial, precisa de análise e planejamento.

1 curtida

Amém Douglas, que abençoe a nos todos, muito obrigada.
No momento o clicador vai atender, conseguindo incluir essa funcionalidade de clicar no Imprimir dai já funciona exatamente como preciso, quando ele gera o download, clico em imprimir, depois Ctrl+P e o envio gera uma capa, dai é processo manual de novo, infelizmente a função ainda depende muito do processo manual, os números são extraídos de documentos físicos, então eu vou precisar digitar caso a caso, ou no minimo selecionar e fazer um check antes, mas consigo manusear o processo usando um Excel a base de Ctrl+C e Ctrl+V e exclusão, usando o Mouse Pro que havia comentado com você, ele vai repetir meu comando, ele só não atende em caso como esses no qual implementou pra mim, mas se fizer um comando no qual ele clica em um mesmo ponto não tem erro. Acredito que talvez tenha muita coisa a melhorar e que é possível sim obter essa base, mas la tudo entra como melhoria e ninguém da muita atenção sabe até porque gera custos, então estou tentando melhorar os pontinhos que tenho visibilidade e acesso. Mas acho super interessante a ideia da Extensão no Navegador, eu vou pesquisar sobre, não estou tendo muito tempo para me dedicar, mas vou estudando aos poucos, e entendendo melhor vou desenvolvendo e trocando ideias com vocês.

Vou ver se consigo implementar então.

Em que momento o programa deveria clicar no botão “Imprimir Capa”? Sempre após clicar numa checkbox? Após ter clicado em várias checkbox? Ou ao teclar uma outra Tecla específica (que não seja Enter nem nenhuma outra usada pelo Navegador/Sistema-Operacional)?

Acho que ter uma outra tecla te daria mais controle sobre o programa.

E depois de clicar em “Imprimir Capa”? O TextField do Navegador aberto pelo Ctrl+F perde o foco e não é possível digitar nele até clicar nele de novo; você gostaria que o programa então clicasse nele? Gostaria também que o programa fizesse Ctrl+A para selecionar tudo no campo deixando-o pronto para digitar um novo valor apagando o antigo?

Veja certinho como deve ser todo o fluxo de trabalho do programa para não ficar nada errado ou faltando, daí me diga; vou estar aguardando, e quando tiver um tempo implemento. :slight_smile:

1 curtida

DOUGLAS: Em que momento o programa deveria clicar no botão “Imprimir Capa”? Sempre após clicar numa checkbox? Após ter clicado em várias checkbox? Ou ao teclar uma outra Tecla específica (que não seja Enter nem nenhuma outra usada pelo Navegador/Sistema-Operacional)?

R: Deve clicar no “Imprimir Capa” sempre após clicar na Checkbox.

Ele nunca vai selecionar varias checkbox de uma só vez, sera uma para cada impressão gerada.

Como estou usando o Mouse Record Pro ele não está selecionando a Checkbox quando clico Enter, ate tentei usar o teclado virtual mas não sei porque não esta selecionando, ele só funciona quando eu gravo o primeiro comando, quando aperto play para executar como um robo ele nao entende o Enter e não seleciona a checkbox.

O clicador funciona de forma manual corretamente, apenas com o Mouse Record Pro, que ele esta dando erro.

Pensei nesse caso em apenas habilitar a área da Checkbox para que eu pudesse clicar de forma manual mesmo, ao invés de pressionar o “Enter” gostaria de clicar com o mouse na checkbox, isso é possível?

DOUGLAS: E depois de clicar em “Imprimir Capa”? O TextField do Navegador aberto pelo Ctrl+F perde o foco e não é possível digitar nele até clicar nele de novo; você gostaria que o programa então clicasse nele?

Depois de imprimir a capa o que seria legal é que fosse possivel limpar a Checkbox selecionada, assim conseguiria selecionar outra Checkbox, mas isso é só um detalhe viu, da forma que esta, to conseguindo utilizar.

DOUGLAS: Gostaria também que o programa fizesse Ctrl+A para selecionar tudo no campo deixando-o pronto para digitar um novo valor apagando o antigo?

Se esse procedimento for capaz de limpar a Checkbox isso ajuda bastante, mas caso for dar trabalho demais não precisa mexer.

Pontos que já resolveria :

Acionar o botão “Imprimir Capa” , se for por comando do Mouse acredito que vai rodar melhor devido ao uso da ferramenta Mouse Record Pro.

Alterar o gatilho da Checkbox para clique do Mouse.

Se possível : opção para limpar o Chekbox após todas ações.

Fluxo : Mouse Record Pro + Clicador

1 - Pagina Web e Excel com n° xxxx ou xxxx / xxxx abertos.
2 - Ctrl+F pagina web
3 - Ctrl+C / Ctrl+V - Campo Ctrl+F
4 - Executar Clicador
5 - Checkbox Selecionado
6 - Imprimir Capa
7 - Download Realizado
8 - Ctrl+P
9 - Impressão Realizada.
10 - Processo Manual
Posterior o Mouse Pro ira repetir tudo isso para o próximo número.

Esse problema que você relatou provavelmente indica que o JNativeHook não consegue ouvir os Eventos de mouse e teclado lançados pelo Mouse Record Pro.

Vou te enviar um programinha que fiz aqui para você testar isso:
OuveTudo.jar (195,4 KB)

Coloca esse programinha para rodar e depois coloca o Mouse Record Pro para teclar Enter, teclar outras Teclas (como A, B e C), mover o cursor, e dar clicks.

Esse programinha tá usando o JNativeHook na mesma versão, para ouvir “tudo”, vamos ver se ele consegue ouvir os eventos do Mouse Record Pro.

Eu não sabia que você estava usando algo como o Mouse Record Pro para ativar o Clicador (falta de levantar bem os requisitos e de uma boa análise dos casos de uso né? rs), mas agora que sei, tive uma ideia que pode dispensar o JNativeHook do Clicador: O Clicador pode ter apenas um botão numa Janelinha que ficaria sempre visível (alwaysOnTop), aí o Mouse Record Pro simplesmente clica nesse botão para ativar o Clicador!

O que você acha? Testa essa nova versão:

ClicadorDeCheckbox.zip (196,5 KB)

1 curtida

Douglas, bom dia.

É exatamente isso, a versão nova super atende, fiz o teste e funciona muito bem, para acionar o botão “Imprimir Capa” é possível fazer da mesma forma? Eu só não sei se vai dar mais trabalho porque o pixel dele tem vários na mesma cor, não é como o selecionador do Ctrl+F na cor laranja que fixa no exato.
Acho que cheguei a comentar sobre o Mouse Pro sim, mas não detalhei como agora, me desculpe, e mais uma vez agradeço pelo seu tempo dedicado, muito obrigada mesmo, não conseguiria fazer tão rápido e sozinha isso tudo, é muita informação rss, quanto mais vejo as coisas funcionando, mais vontade da de aprender tudo logo , você é muitoooo bom. :scream:
O programa “OuveTudo” a empresa bloqueia a instalação, mas a nova versão esta incrivelmente funcionando. :smiley:

É verdade, você já havia falado que estava usando Mouse Record Pro em conjunto, eu não tinha percebido que isso seria importante rs. Bem, já que o Clicador será ativado por um botão na Janela dele, vou remover o JNativeHook dele e assim ele vai parar de funcionar ao Teclar Enter, vai funcionar só por Click no Botão dele, ok?

Para o Clicador conseguir reconhecer o botão “Imprimir Capa” vou precisar que você me envie um recorte deste Botão estando habilitado (roxo mais forte, quando ele fica clicável, logo após selecionar uma checkbox). Faça esse recorte tirando um PrintScreen da tela, colando no Paint, e cortando no Paint mesmo, como eu expliquei para fazer com a “partedecheckbox.png”.

Sobre limpar a checkbox selecionada, faça esse teste: selecione uma checkbox e experimente dar um F5 para atualizar a página e veja se a checkbox selecionada é limpa.

Se isso não funcionar, provavelmente o Clicador vai precisar clicar na checkbox para deselecioná-la. A forma mais fácil de implementar seria fazer o Clicador guardar as coordenadas X e Y da checkbox que ele clicou, e clicar nessas mesmas coordenadas logo após clicar em “Imprimir Capa”; mas para isso funcionar a checkbox não pode mudar de lugar após clicar em “Imprimir Capa”, e eu acho que ela vai mudar de lugar porque o Chrome faz aparecer uma faixa de downloads em andamento no fim da janela dele:


Veja se a checkbox aí mudará de lugar. Se essa barra já estivesse visível antes de toda a execução do Clicador, provavelmente a Checkbox não mudaria de lugar e essa implementação daria certo.

A melhor forma de fazer, e um pouco mais trabalhosa, é fazer o Clicador buscar pela(s) Checkbox(es) Seleciona(s) na Área-de-Checkboxes e clicar nela(s). Para fazer isso, vou precisar que você também me envie um recorte de uma checkbox selecionada (✓), feito com PrintScreen->Paint também, para que nenhum pixel seja alterado.

Fiquei com dúvidas sobre o que ocorre após clicar em “Imprimir Capa”:

  1. Um Download começa, mas como um programa irá saber quando esse Download terminou para poder dar continuidade aos processos sem intervenção humana? É o Mouse-Pro que será o responsável por detectar quando o Download terminar e por dar continuidade ao trabalho automaticamente?
  2. O Atalho Ctrl+P é feito automaticamente, mas ele é feito na Janela do Chrome? Se sim, isso abre uma tela para configurar a impressão que tem um botão “Imprimir”, será o Mouse-Pro que fará o “Ctrl+P” e que clicará nesse botão “Imprimir”? Se sim, você já verificou se esse botão “Imprimir” sempre aparecerá no mesmo lugar da Tela para que o Mouse-Pro sempre consiga clicar nele?
    2.1 Na verdade, eu imagino que o que você deve ter feito é isso: Após o Download terminar você configurou o Chrome para “Sempre abrir arquivos deste tipo” ou está usando o Mouse-Pro para abrir o Arquivo, e, com o Arquivo aberto (não sei se é imagem, PDF, ou outro) o Mouse-Pro faz o “Ctrl+P” para abrir o diálogo de impressão do programa que abriu o arquivo (Visualizador-de-Imagens/Visualizador-de-PDFs?), e, o prórprio Mouse-Pro clica em imprimir. é isso? Bem, se é isso, você verificou se o Mouse-Pro sempre conseguirá fazer tudo isso sozinho?

image

Essas dúvidas são importantes porque, se o Mouse-Pro não for capaz de automatizar esses processos o Clicador precisará ser, aí tenho que ter em mente o que ele precisará fazer para prepará-lo pra isso.

1 curtida

Encontrei uma extensão no Chrome que pode ser usada (talvez até pelo Mouse-Pro) para desmarcar todas as checkbox, veja o que você acha:

image

1 curtida

Belezinha Douglas, pode desabitar sim a tecla Enter para seleção do Checkbox.

Segue o recorte, fiz dentro e ele por completo.

ImprimirCapaCompleta

ImprimirCapaDentro

Sobre o limpar a Checkbox pode desconsiderar, eu testei o F5 mas o Mouse Pro se perde, porem verifiquei um botão no sistema que consigo limpar, ele não muda de lugar e vai funcionar bem.

  1. Um Download começa, mas como um programa irá saber quando ele terminou para poder dar continuidade aos processos sem intervenção humana? É o Mouse-Pro que será o responsável por detectar quando o Download terminar e por dar continuidade ao trabalho automaticamente?

Não havia pensado nesse ponto, mas pelo teste que fiz é cerca de 5 segundos para o arquivo abrir, não é pesado, o meu Chrome eu habilitei para abertura do documento direto com o Adobe, então ele não tem aquela faixa de download do Chrome, porem acho que corro um risco aqui talvez, mas seguro o Mouse Pro por 5 segundos de espera e depois aciono o Ctrl+P, essa seria minha ideia.

  1. O Atalho Ctrl+P é feito automaticamente, mas ele é feito na Janela do Chrome? Se sim, isso abre uma tela para configurar a impressão que tem um botão “Imprimir”, será o Mouse-Pro que fará o “Ctrl+P” e que clicará nesse botão “Imprimir”? Se sim, você já verificou se esse botão “Imprimir” sempre aparecerá no mesmo lugar da Tela para que o Mouse-Pro sempre consiga clicar nele?

Exatamente isso,todo o processo será conduzido pelo Mouse Pro, quando eu clicar Imprimir Capa, ira abrir direto a pagina do Adobe Reader maximizada e não aquela barra do download do Chrome, a janela é fixa nesse procedimento até clicar imprimir que é o final do processo, testado com o Mouse Pro, ele consegue. rss

Douglas muito interessante a extensão, já instalei funciona lindamente, vou usar. :smiley:

Eu estava vendo sobre um Mouse Recorder aqui, não sei se é o seu, veja:
http://www.mouserecorder.com/docs/09/manual.htm

diz haver a opção de fazer o programa esperar até um pixel da tela assumir determinada cor:

Acho que você poderia usar essa opção para esperar o Adobe Reader abrir, fazendo o programa detectar um dado pixel da tela que muda de cor quando o Adobe Reader abrir. Experimente testar isso.

Funcionaria assim:

  1. O Mouse-Recorder clicaria no Botão do Clicador ativando-o, e então fica aguardando aparecer o pixel do Adobe Reader;
  2. O Clicador clica na Checkbox e no botão “Imprimir Capa”, o Chrome faz o Download e então abre o PDF no Adobe Reader;
  3. O Mouse-Recorder percebe o pixel do Adobe Reader e executa os comandos de Impressão (Ctrl+P, etc.)

E depois disso? o Mouse-Recorder vai conseguir fechar o Adobe Reader deixando tudo pronto para reiniciar todo o processo?

Testa aí, vamos ver se ele consegue. :smiley:

Esse parece bem mais completo e inteligente, o que uso é o Mouse Record Pro eles são diferentes, não sei se ele possui essa função. Vou dar uma analisada depois … Já sai da empresa agora, vou baixar esse que enviou e conseguindo instalar la eu faço o teste pela manhã e já te conto como foi, Isso seria ótimo , porque em caso de uma página não abrir entendo que ele pause por motivo do pixel não ser identificado, ou vai se perder mesmo. Rss
Com o Mouse Pro que uso, ele consegue sim fechar o Adobe e reiniciar o processo, so não tenho como mensurar o exato tempo do download, no caso quando a página do Adobe abre.

Bem, alterei o Clicador para ele conseguir clicar no Botão Imprimir, mas não testei aqui.

Também adicionei um Arquivo de Configurações, dentro da pasta src; você vai poder alterar a posição e tamanho da Janela do Clicador, e as demais configurações. Você pode adicionar comentários nesse arquivo se a linha deles começar com //, assim:

//Esta é uma linha de Comentário
IMAGEM_DE_UMA_CHECKBOX: "src/images/partedecheckbox.png"
IMAGEM_DO_BOTAO_IMPRIMIR: "src/images/botaoimprimir.png"
//Este é outro Comentário
COR_DA_SELECAO_RED: 255
COR_DA_SELECAO_GREEN: 150
   //Essa linha não começa com // pois começa com espaços, o programa pode "bugar" por causa disso.
COR_DA_SELECAO_BLUE: 50

ClicadorDeCheckbox.zip (16,0 KB)

1 curtida

Bom dia. :grin:

Vou testar e jaja te conto, muito mas muito obrigada mesmo. Não faz idéia do quanto esta me ajudando. Que Deus te abençoe muito e sempre.