Colocar programa em harhour ativo na memória
Moderador: Moderadores
Colocar programa em harhour ativo na memória
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.
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.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Colocar programa em harhour ativo na memória
Se adicionar na compilação -GUI ou GTWVG.HBC, deixa de ser console.kovalsk escreveu:Continuo usando Harbour modo 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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Colocar programa em harhour ativo na memória
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: https://pctoledo.org/forum/viewto ... 13#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.
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: https://pctoledo.org/forum/viewto ... 13#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)
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)
Colocar programa em harhour ativo na memória
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?
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?
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Colocar programa em harhour ativo na memória
Acho isso pouco.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.
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Colocar programa em harhour ativo na memória
Sim, mas naquele exemplo o raciocinio foi montado para encerrar o sistema.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?
Para esse caso de ler arquivo a cada determinado tempo, temos que pensar especificamente pra isso. Veja o exemplo abaixo:
Código: Selecionar todos
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(), "" ) } )Código: Selecionar todos
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 NilSem dúvida José, mas 30 segundos foi apenas para exemplo. Não creio que alguém estabeleça esse tempo pra fechar um sistema.JoséQuintas escreveu:Acho isso pouco.
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)
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)
Colocar programa em harhour ativo na memória
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.
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.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Colocar programa em harhour ativo na memória
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: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?
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.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
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)
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)
Colocar programa em harhour ativo na memória
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.
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.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Colocar programa em harhour ativo na memória
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.
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.
Aí pode sair do normal, porque se está num ambiente de HMG, ele é direcionado a HMG.kovalsk escreveu:Alguns eu já tentei pela ide hmg 3.4.4 mas sem sucesso ou tentando com hmk2.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Colocar programa em harhour ativo na memória
Como o José disse, melhor é não misturar as coisas mesmo, e tentar resolver tudo com HMG apenas.JoséQuintas escreveu:Não olhe os exemplos da gtwvg.
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
Tudo via digitação de código mesmo. Isso porque nunca me adaptei a nenhuma IDE, sei que ajudam, mas não me adapto.kovalsk escreveu:Você usa alguma ide ou faz tudo no punho mesmo?
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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Colocar programa em harhour ativo na memória
Nem é por isso, é porque os exemplos só complicam.Jairo Maia escreveu:Como o José disse, melhor é não misturar as coisas mesmo, e tentar resolver tudo com HMG apenas.
Não uso NADA do que existe nos exemplos.
NADA mesmo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Colocar programa em harhour ativo na memória
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.JoséQuintas escreveu:Nem é por isso, é porque os exemplos só complicam.
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)
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)
