Deixar o prog carregado na memória
Moderador: Moderadores
Deixar o prog carregado na memória
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
Obrigado a todos
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.
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}
{POG - Programação Orientada a Gambiarra}
rodar a aplicação
é 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
Obrigado
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).
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}
{POG - Programação Orientada a Gambiarra}
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...
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...
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
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.
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.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
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.
O PRWIN que está no meu site é xHarbour puro.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.



