Deixar o prog carregado na memória

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Bisteca
Usuário Nível 2
Usuário Nível 2
Mensagens: 74
Registrado em: 10 Jan 2005 10:25

Deixar o prog carregado na memória

Mensagem 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
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem 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.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Bisteca
Usuário Nível 2
Usuário Nível 2
Mensagens: 74
Registrado em: 10 Jan 2005 10:25

rodar a aplicação

Mensagem 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
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem 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).
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
kiko
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 08 Jul 2004 15:24
Localização: Cianorte

Mensagem 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...
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem 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.
Sem mais
Wagner Nunes
www.vagucs.com.br
DENTINHO
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 06 Dez 2006 21:48

Mensagem 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?
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem 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.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem 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...
Sem mais
Wagner Nunes
www.vagucs.com.br
Responder