Clipper On Line • Ver Tópico - Colocar programa em harhour ativo na memória

Colocar programa em harhour ativo na memória

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Colocar programa em harhour ativo na memória

Mensagempor kovalsk » 12 Nov 2021 17:33

Tem alguma for de colocar um programa ou função do Harbou ativo na memória verificando em tempo real se um determinado arquivo apareceu na pasta?
Minha intenção seria o cliente ficar usando o programa em outras telas como cadastro de produtos ou clientes enquanto uma determinada rotina/função fica
verificando em tempo real se um arquivo texto apareceu na pasta, esse arquivo texto seria enviado por uma aplicativo feito por terceiros pra gerar o arquivo e
caso ele aparecesse eu faria a leitura e puxaria os dados pra arquivo e mandaria uma impressão pra impressora automaticamente.
Como não sei fazer um sistema pra android eu contrataria alguém pra isso.
Pensei nessa função também caso colocasse uma cancela com detecção de movimento onde a placa do carro seria capturada e enviada pra uma pasta para que
o programa fizesse a entrada desse veículo no sistema.
Trabalho praticamente com estacionamentos apenas e preciso desenvolver algo assim.
Continuo usando Harbour modo console.
kovalsk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 18 Mar 2014 13:45
Cidade/Estado: Juiz de Fora
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Colocar programa em harhour ativo na memória

Mensagempor JoséQuintas » 12 Nov 2021 18:15

kovalsk escreveu:Continuo usando Harbour modo console.


Se adicionar na compilação -GUI ou GTWVG.HBC, deixa de ser console.

E se usar GTWVG pode criar um programa com tela invisível, e pode colocar no agendador de tarefas pra ele ficar rodando, ao invés de colocar num determinado módulo.

Também pode usar multithread, mas nesse caso, se existe mais de um terminal, todos os terminais iriam estar verificando.

Verifique no meu post recente de GTWVG pra principiantes, que lá tem o que precisa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Colocar programa em harhour ativo na memória

Mensagempor Jairo Maia » 12 Nov 2021 18:18

Olá kovalsk,

No seu caso, não se trata de fechar o sistema, porém, apenas para teste para saber se em seu sistema essa função vai funcionar, coloque no início de seu aplicativo a dica desse post: http://www.pctoledo.com.br/forum/viewtopic.php?p=152413#p152413

Se funcionar, seguimos a conversa e você pode fazer isso usando os recursos da HB_IdleAdd(). Caso não funcione, teria que alterar algo em seu sistema para que a HB_IdleAdd() seja "provacada" pela HB_IdleState(). De qualquer forma, acho que tem sim, sem "muitos" problemas.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Colocar programa em harhour ativo na memória

Mensagempor kovalsk » 15 Nov 2021 17:44

Obrigado a todos pela ajuda, obrigado José Quintas, Jairo....
Testei as quatro linha no início da minha aplicação e funcionou perfeito, quando para de mexer no teclado o sistema fecha automaticamente em 30 segundos.
Percebi numa mensagem de outro amigo que no ntask2 ele coloca a função que quer que seja executada no tempo marcado, é isso?
kovalsk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 18 Mar 2014 13:45
Cidade/Estado: Juiz de Fora
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Colocar programa em harhour ativo na memória

Mensagempor JoséQuintas » 15 Nov 2021 19:24

kovalsk escreveu:Obrigado a todos pela ajuda, obrigado José Quintas, Jairo....
Testei as quatro linha no início da minha aplicação e funcionou perfeito, quando para de mexer no teclado o sistema fecha automaticamente em 30 segundos.


Acho isso pouco.
A pessoa atende o telefone e o programa fecha.
Deixo próximo de 15 minutos, que é o limite da rede windows.
Menos que isso pode ter reclamação.
Imagine o gerente analisando um gráfico, e/ou relatório, e o aplicativo se fechar durante a análise.
No celular ainda vai, apesar que tem horas que atrapalha o tempo reduzido.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Colocar programa em harhour ativo na memória

Mensagempor Jairo Maia » 16 Nov 2021 00:31

kovalsk escreveu:Percebi numa mensagem de outro amigo que no ntask2 ele coloca a função que quer que seja executada no tempo marcado, é isso?
Sim, mas naquele exemplo o raciocinio foi montado para encerrar o sistema.

Para esse caso de ler arquivo a cada determinado tempo, temos que pensar especificamente pra isso. Veja o exemplo abaixo:
nTimeRead := 10  // tempo em segundos, para fazer a verificação
nTimeNextRead := Secs ( Time() ) + nTimeRead
nTask1 := HB_IdleAdd( {|| nTimeNextRead := If( Secs( Time() ) > nTimeNextRead, Secs( Time() ) + nTimeRead, nTimeNextRead ) } )
nTask2 := HB_IdleAdd( {|| If( Secs( Elaptime( nTimeNextRead, Time() ) ) >= nTimeNextRead, LerArquivo(), "" ) } )

Em sua função que fará a leitura do arquivo, precisa tratamento especial também, para evitar recursividade. Exemplo:
Function LerArquivo()
Local ..., ..., ...

nTimeNextRead := Secs ( Time() ) + 1800  // ajuste a nTimeNextRead para o tempo que achar que ela ficará ativa, aqui, a exemplo, 30 minutos

If File( "arquivo")
  seus códigos para ler o arquivo...
  ....
  ....
  .... etc.
EndIf

nTimeNextRead := Secs ( Time() ) + nTimeRead  // antes de sair da função, reconfigure a variavel nTimeNextRead novamente

Return Nil


JoséQuintas escreveu:Acho isso pouco.
Sem dúvida José, mas 30 segundos foi apenas para exemplo. Não creio que alguém estabeleça esse tempo pra fechar um sistema.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Colocar programa em harhour ativo na memória

Mensagempor kovalsk » 16 Nov 2021 12:06

Jairo muito obrigado pela ajuda, vou colocar na minha aplicação. Agradeço pela riqueza de detalhes, da forma que fez está praticamente pronto, você entendeu exatamente do que preciso. Queria aproveitar pra perguntar pra você ou outro amigo do forum ou o José Quintas que mencionou que seria possível colocar o programa em execução na barra de tarefas sem tela, como fazer isso?
Aproveitando a boa vontade de todos eu compilo da forma como o José Quintas disse

-oSiac
-w0 -es2
-mt
#compilaçao Incremental
-inc
# comprime o executável (necessita de UPX)
-compr=yes
# COMPILAR EM MODO CONSOLE
xhb.hbc hbwin.hbc hbct.hbc -gui -gtwvt -ljck -gtwvg

Segundo sua palavras o sistema já não é modo console, eu conseguiria colocar o sistema pra abrir uma tela gráfica, digo, com cara de windows
Queria saber pra migrar os programas aos poucos, ainda tenho dificuldades pra trabalhar com IDE´s ou na munheca como alguns. Não sei qual forma deveria usar.
Desde já agradeço pela excelente colaboração.
Anexos
teste.png
Essa é a tela principal do meu sistema e as letras ainda são feitas como box.
kovalsk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 18 Mar 2014 13:45
Cidade/Estado: Juiz de Fora
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Colocar programa em harhour ativo na memória

Mensagempor Jairo Maia » 17 Nov 2021 12:28

kovalsk escreveu:Queria aproveitar pra perguntar pra você ou outro amigo do forum ou o José Quintas que mencionou que seria possível colocar o programa em execução na barra de tarefas sem tela, como fazer isso?
Não sei fazer isso. Uma dúvida que tenho sobre isso, é que se colocar para rodar invisível (isso eu sei fazer), como o usuário vai saber que chegou a mensagem e tratá-la? Não tenho a menor ideia de como fazer dessa forma. Sugiro fazer aberto mesmo.

kovalsk escreveu:Segundo sua palavras o sistema já não é modo console, eu conseguiria colocar o sistema pra abrir uma tela gráfica, digo, com cara de windows
Queria saber pra migrar os programas aos poucos
Migrar o programa aos pucos esse é o macete na minha opinião. Uso GTWVG desde 2014, mas não tenho a menor idéia de como Auxiliar alguém a começar, a não ser dizendo: Faça uma cópia de qualquer pasta de algum projeto seu, estude os exemplos disponíveis da GTWVG na pasta do Harour, e tente ir implementando no projeto teste. Quando você menos esperar, verá que já conhece bastante de GTWVG para começar a implemtar em seus projetos que estão em produção.

Depois disso, dúvidas específicas se posso contribuir, sem problemas, contribuo se posso.

kovalsk. não leve a mal, de boa... Não peça o peixe, compre o anzol... rs...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Colocar programa em harhour ativo na memória

Mensagempor kovalsk » 18 Nov 2021 10:00

Bom dia, achei uma pasta gtwvg dentro da pasta harbour com alguns arquivos .prg e algumas imagens mas nada mais, sem testes e nem sei como compilar.
Alguns eu já tentei pela ide hmg 3.4.4 mas sem sucesso ou tentando com hmk2.
Você usa alguma ide ou faz tudo no punho mesmo?
Recebi um fonte de um amigo com tela gráfica e tentei de várias formas compilar mas sem sucesso.
OBS: O motivo de colocar o programa invisível é porque ele iria apenas verificar de 10 em 10 segundos se um arquivo chegou na pasta e se ele chegar ele vai ler o
arquivo texto e alimentar um banco de dados e mandar os dados pra impressora automaticamente. Por isso pedi a rotina que executasse de tempos em tempos. O
cliente não precisa fazer nada nesse caso.
Desde já agradeço.
kovalsk
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 18 Mar 2014 13:45
Cidade/Estado: Juiz de Fora
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Colocar programa em harhour ativo na memória

Mensagempor JoséQuintas » 18 Nov 2021 10:09

Já vi que na compilação tem gtwvg.
Pra não ter tela, é só não usar a tela.

Pra deixar como serviço, é usar o utilitário do Windows, SC.EXE, ou colocar no agendador de tarefas.

Não olhe os exemplos da gtwvg.

kovalsk escreveu:Alguns eu já tentei pela ide hmg 3.4.4 mas sem sucesso ou tentando com hmk2.


Aí pode sair do normal, porque se está num ambiente de HMG, ele é direcionado a HMG.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Colocar programa em harhour ativo na memória

Mensagempor Jairo Maia » 18 Nov 2021 10:59

JoséQuintas escreveu:Não olhe os exemplos da gtwvg.
Como o José disse, melhor é não misturar as coisas mesmo, e tentar resolver tudo com HMG apenas.

Mas apenas para esclarecer: Acho que o Harbour da HMG não vem com os exemplos da WVG, e nem tem porque. Mas a instalção do Harbour tem exemplos na pasta: C:\hb32\contrib\gtwvg\tests

kovalsk escreveu:Você usa alguma ide ou faz tudo no punho mesmo?
Tudo via digitação de código mesmo. Isso porque nunca me adaptei a nenhuma IDE, sei que ajudam, mas não me adapto.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Colocar programa em harhour ativo na memória

Mensagempor JoséQuintas » 18 Nov 2021 12:37

Jairo Maia escreveu:Como o José disse, melhor é não misturar as coisas mesmo, e tentar resolver tudo com HMG apenas.


Nem é por isso, é porque os exemplos só complicam.
Não uso NADA do que existe nos exemplos.
NADA mesmo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Colocar programa em harhour ativo na memória

Mensagempor Jairo Maia » 18 Nov 2021 14:02

JoséQuintas escreveu:Nem é por isso, é porque os exemplos só complicam.
Ops... Aqui há um "abismo" entre minha compreensão e a sua. Respeito, mas não concordo! Tudo que sei referente a GTWVG aprendi com base nos exemplos disponíveis. E mais, acho que é o melhor caminho para quem quiser aprender WVG.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 16 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro