Página 1 de 1
Deixar o prog carregado na memória
Enviado: 05 Dez 2006 15:21
por Bisteca
Olá, amigos. Alguém sabe como faço para deixar um programa carregado monitorando uma certa condição e deixar o micro livre para executar outra aplicação?
Obrigado a todos
Enviado: 05 Dez 2006 15:47
por gvc
Explique melhor o que vc quer fazer.
Com o windows vc pode abrir várias aplicações (não que vá funcionar uma maravilha) e deixá-las rodando.
Dependendo do que vc quer fazer, o clipper/dos não é a melhor solução.
rodar a aplicação
Enviado: 06 Dez 2006 11:07
por Bisteca
é o seguinte: a máquina tem DOS e roda uma aplicação clipper e preciso fazer com que um outro programa monitore quando a primeira aplicação chegue a uma certa condição... (as duas aplicações são em clipper)
Obrigado
Enviado: 06 Dez 2006 13:30
por gvc
A máquina não esta rodando uma janela windows? Esta rodando DOS puro?
Em clipper/dos não tem como fazer isso (que eu saiba).
Programas TSR normalmente são feitos em linguagens que consomem menos espaço de memória e recursos da máquina. C/Assembler/Pascal por exemplo.
Talvez vc tenha que reavaliar seu projeto para resolver isso somente com clipper.
Explique o que esta fazendo. Talvez o pessoal aqui do forum possa ajudar a encontrar um modo de resolver isso. (Se achar melhor, pode mandar um e-mail).
Enviado: 06 Dez 2006 14:31
por kiko
se vc ta com DOS puro, nao da, pq ele eh monotarefa: soh roda uma aplicacao de cada vez....
se vc esitver em dos puro, vc pode fazer a propria aplicacao chamar a outra...
mesmo que vc esteja em windows, nao sei se vai dar pra fazer uma aplicacao em clipper puro rodar em background...imagino q em xHarbour de pra fazer, mas nao sei informar...
Enviado: 06 Dez 2006 16:30
por rochinha
Amiguinho
Isto é possivel no Clipper puro bastando para isto colocar em um ponto de seu programa:
RUN COMMAND.COM
Mas isto não é aconselhavel pois não lembro se para retornar usava-se o EXIT normal.
Com Blinker sei que isto é possivel pois usava um de seus recursos para sair ao prompt fazer algumas coisas e retornar com baixo consumo de memória.
Código: Selecionar todos
FUNCTION Shell2DOS()
enable = .t.
disable = .f.
save screen to SwapDemo
i = SWPUSEEMS(enable)
i = SWPUSEXMS(enable)
i = SWPUSEUMB(enable)
i = SWPCURDIR(enable)
i = SWPVIDMDE(enable)
? "Entrando no DOS...(Digite EXIT para retornar)"
// Novo Prompt
i = SWPSETENV("PROMPT=[ Rochinha ]$p$g")
keystr = "'cls'{enter}'dbase'" // Comando automatico abria o dBase
swpkeybrd(keystr)
* status = SWPRUNCMD(ChildProg, Memory, Shell Directory, Temporary directory)
i = SWPRUNCMD( "", 0, "", "")
rest screen from SwapDemo
RETURN(.T.)
Enviado: 06 Dez 2006 16:46
por vagucs
Bom,
Apesar do DOS ser MONOTAREFA você pode disparar diversos programas com ele, isso carregando o programa de forma residente, ou seja, vc instala na interrupção do relogio do sistema uma chamada a uma pequena rotina sua que faz uma chamada em determinado caso ao seu sistema.
Mas como citado, colocar o programa rodando mesmo em clipper é possivel, não falo que não, pois sempre existe alguem que consegue fazer, mas os programas em clipper consomem muita memoria, a dica dada pelo rochinha é valida, mas quando vc dispara o outro comando a sua aplicação vai parar esperando a resposta do outro sitema. Logo, se vc quer fazer um programa ficar num while sem interonper outro processo, com o clipepr vai ser meio dificil.
No meu site tem uma lib que vi onde vc colocar o programa clipper rodando como o NG, uma tecla de atalho chama o programa, independente do que vc esteja fazendo na hora, mas assim mesmo seu programa fica suspenso.
Tem a BGEVENTs tambem no meu site, onde vc pode colocar diversas rotinas em clipper rodando ao mesmo tempo dentro do seu sistema, mas o programa fica mais lento.
Acho uma forma valida e prudente a de criar esta rotina em xHarbour e carregar no iniciar do windows ou mesmo criar um servico em xHarbour, vc vai programar como em clipper mesmo, porem o aplicativo fica totalmente 32bits e vc vai conseguir fazer o que quer, nunca programei servicos no Windows com xHarbur, mas em linux eu faço isso demais da conta, já faz parte da minha vida e funciona muito, mas muito bem mesmo.
Quando vc programa um serviço, lembre de ficar de olho no consumo de CPU, se não a coisa fica "cagada", ai vira um M****, mas no geral colocar mais de um programa rodando ao mesmo tempo funciona bem em Windows XP e Linux, apesar de serem sistemas que simulam uma multitarefa e isso não vem ao caso, funciona bem e acho que isso já te ajuda a clarear as ideias.
Enviado: 09 Dez 2006 00:54
por DENTINHO
continuando o assunto:
Tambem preciso de um monitoramento de uma pasta tipo o observe da impressoara DARUMA. Ele monitora uma pasta onde voce envia o comando da impressora.
Seria possivel criar um exe em clipper e alojar no modo relogio para monitorar uma pasta?
Enviado: 09 Dez 2006 00:59
por vagucs
Como discutido antes, impossivel nada é relativo a programação, porem carregar um programa em clipper excede e muito os limites de memoria q o DOS impoem, entao, colocar rodando mesmo acho muito dificil, mas porque vcs nao fazem um programa em xharbour para isto???
O PRWIN que está no meu site é xHarbour puro.
Enviado: 09 Dez 2006 01:26
por rochinha
Amiguinho
O Clipper rodando da forma como voce quer manterá sua maquina um tanto escravizada, mesmo rodando em janela, e a verificação que voce deseja fazer consome ticks da cpu.
Isto não quer dizer que um programa feito para Windows não faça o mesmo, um exemplo é o emulador Bematech que quando ativo consegue ocupar todo o processamento, monitorando o que eu não sei.
Se voce apenas quer monitorar uma pasta sugiro usar programas como o do Vagner uo fazer um sendo que este será apenas um monitor, um pequeno do..while por exemplo.
Eu montei um serviço usando o Fivewin for Harbour 2.4 que fica escondido tirando fotos do desktop e armazenando a imagem capturada em formato JPG que é visualizado por outro aplicativo afim de saber o que o usuario esta aprontando na maquina.
Mesmo com esta tarefa o mesmo ainda assim us nos momentos de pico até 10% mesmo fazendo uma verificação a cada 30 segundos imagine se eu diminuisse para tempo real as maquinas parariam.
Se quizer se aventurar com Fivewin e Harbour com este meu código voce poderá adapta-lo para o seu uso.
Mas ainda assim, esqueça de usar o Clipper para tal tarefa, voce conseguirá apenas irritar seus usuários.
Enviado: 09 Dez 2006 01:36
por vagucs
Concordo com o rochinha e tambem concordo que nao sei o que o emulador bematech fica fazendo para ser tão pesado, kekekeke...