GARANTIR DESCONTO

Fórum Capturar telas programas DOS #351789

12/01/2008

0

Primeiro vamos imaginar que estamos trabalhando com um programa na plataforma DOS, aqueles com 25 linhas e 80 colunas.
Pois bem, existe possibilidade de, em Delphi, desenvolver uma rotina que possa capturar caracteres de cada uma das posições dessa grade de 25x80?
É claro que o Form teria a altura de uma linha, e ficaria posicionado na ultima linha de baixo com diversos botões, para captura das diferentes telas do programa em DOS.
Se eu definir, em cada tela, as posições de inicio e fim de cada campo, eu poderia montar uma tabela (Banco de Dados) com esses dados capturados.
Vocês podem estar perguntando: Por quê esse maluco que fazer isso?
Pois bem, é que eu trabalho num departamento do estado, que tem o BD na capital, e como é do conhecimento de todos, esses sistemas que o estado utiliza são uma porcaria, que obriga o usuário a repetir procedimentos desnecessários.
Se conseguir fazer isso, eu vou ter no fim do dia, todos os dados de todo o trabalho que fiz, sem haver a necessidade de relaciona-los na unha, bastariam algumas rotinas de filtragem e indexação e eu poderia imprimir os relatórios com um clique.
Como disse, é querer muito, mas como nada é impossível, e se houver algum meio, certamente é neste forum que vou conseguir.

Alguma idéia para o desafio?

Abraços.


Cps.art

Cps.art

Responder

Posts

13/01/2008

Onjahyr

Primeiro vamos imaginar que estamos trabalhando com um programa na plataforma DOS, aqueles com 25 linhas e 80 colunas. Pois bem, existe possibilidade de, em Delphi, desenvolver uma rotina que possa capturar caracteres de cada uma das posições dessa grade de 25x80?


Poxa, se existir (nada é impossível) deve ser uma função poderosa, quem iria querer desenvolver uma funcionalidade arcaica dessa? :lol:
Você deve estar querendo pegar os caracteres do programa que está na tela em modo [b:d06f237041]DOS[/b:d06f237041], e capturar somente cada campo, né? Acho melhor pensar outra maneira. Talvez com a API do Windows possa fazer isso, ou um sistema de OCR, copiar a imagem inteira do programa e depois transformar (num TMemo) em caracteres.

É claro que o Form teria a altura de uma linha, e ficaria posicionado na ultima linha de baixo com diversos botões, para captura das diferentes telas do programa em DOS.


Você tá querendo colocar o emulador dentro de um formulário? Poxa!

Se eu definir, em cada tela, as posições de inicio e fim de cada campo, eu poderia montar uma tabela (Banco de Dados) com esses dados capturados. Vocês podem estar perguntando: Por quê esse maluco que fazer isso? Pois bem, é que eu trabalho num departamento do estado, que tem o BD na capital, e como é do conhecimento de todos, esses sistemas que o estado utiliza são uma porcaria, que obriga o usuário a repetir procedimentos desnecessários. Se conseguir fazer isso, eu vou ter no fim do dia, todos os dados de todo o trabalho que fiz, sem haver a necessidade de relaciona-los na unha, bastariam algumas rotinas de filtragem e indexação e eu poderia imprimir os relatórios com um clique. Como disse, é querer muito, mas como nada é impossível, e se houver algum meio, certamente é neste forum que vou conseguir. Alguma idéia para o desafio? Abraços.


A muito tempo atrás eu estava querendo fazer uma coisa semelhante, mas não consegui. O máximo que deu foi para arranjar um emulado de um DOS (diferente do da Microsoft) que eu colocava diretamente dentro do formulário e executava algumas funções, mas não sei se poderia executar programa DOS dentro dele. Foi um sucesso na época, um DOS dentro do meu programa desenvolvido no Delphi, o usuário saia e executava alguns procedimentos, creio que (se não me engano) executava programas DOS também, mas não todos. Tá na internet os fontes, só não me lembro onde! E nem sei qual foi o projeto que fiz isso, se eu encontrar de digo. Mas seria elhor você pensar em outra solução. Quais dados você deseja pegar no programa, ele não salva o relatório em arquivos não?

Blz.


Responder

Gostei + 0

13/01/2008

Cps.art

É isso aí onjahyr.

Se existe a necessidade de se conseguir algo, e se não há ferramenta para isso, como você mesmo disse, tentar criar essa ferramenta, por mais básica e primária que seja, é um começo pra se chegar a algo mais elaborado e útil.

O programa não grava nada no terminal.
Se gravasse eu já teria resolvido meu problema.

Sou um iniciante em Delphi e faço parte, talvez, da minoria que participa deste forum, e tenho conseguido muitas dicas da maioria, que como você conhece bastante, mas, sinceramente fiquei um pouco confuso com o conceito que você faz do que é arcaico ou não.

Agradeço a colaboração.


Responder

Gostei + 0

13/01/2008

Onjahyr

Arcaico porque você deseja trabalhar junto com o [b:9c03b75f3e]DOS[/b:9c03b75f3e], no mínimo que se poderia fazer é através de chamadas da [b:9c03b75f3e]API[/b:9c03b75f3e] puxar alguma coisa de lá e trazer para sua aplicação. O emulador do [b:9c03b75f3e]DOS[/b:9c03b75f3e] (no XP), se você clica com o mouse sobre ele, seleciona no menu a opção selecionar tudo, e depois clica na barra do título da janela e seleciona copiar, o texto vai para o [b:9c03b75f3e]Clipboard[/b:9c03b75f3e] (Memória onde ficam armazenados os textos, figuras... copiados). Em seguida, se clicar de novo com o botão direito e selecionar colar ele vai colar o texto copiado. Então, quero chegar onde? em dizer que há interação do Windows com a janela do [b:9c03b75f3e]DOS[/b:9c03b75f3e], e isso é feito entre as funções da [b:9c03b75f3e]API[/b:9c03b75f3e] do Windows, agora, saber quais elas são é o problema. Ou você tenta localizar no help da [b:9c03b75f3e]API[/b:9c03b75f3e] que acompanha o Delphi ou faz uma pesquisa no [b:9c03b75f3e]Google[/b:9c03b75f3e] (bem elaborada e em inglês) para ver se consegue algo a respeito.

Desculpa se no outro POST eu fui um pouco sarcástico. [b:9c03b75f3e]Boa sorte para você![/b:9c03b75f3e]


Responder

Gostei + 0

13/01/2008

Cps.art

Ok onjahyr, agora comecei a entender.
Na verdade o [b:f9a72609f0]DOS[/b:f9a72609f0] no [b:f9a72609f0]XP[/b:f9a72609f0] é emulado, diferente do DOS antes do Windows.
Vou pesquisar sobre isso.
Obrigado pela ajuda e espero contar com sua colaboração.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar