Timer com WVW

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Timer com WVW

Mensagem por pauloa1 »

Leonardo!

Adicionei a função e compilou.

Mas não entendi direito como ajustar.

Por exemplo:

Colocar se o sistema estiver inativo por 20 minutos.

O que coloco nesses parametros?
nTask := HB_BackGroundAdd( {|| Fecha_auto() }, 1500 )
e
if ( timetosec(time()) - timetosec(pcTimeAtu) ) > 5 // 5 cinco segundos

outra coisa:

Essa rotina é só para gets, ou sistema inteiro?
Por exemplo deixar a tela principal do sistema aberta,sistema minimizado, só passar o mouse sem clicar, também funciona?

Paulo
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Timer com WVW

Mensagem por sygecom »

Olá Paulo,
pauloa1 escreveu: Colocar se o sistema estiver inativo por 20 minutos.

O que coloco nesses parametros?
nTask := HB_BackGroundAdd( {|| Fecha_auto() }, 1500 )
e
if ( timetosec(time()) - timetosec(pcTimeAtu) ) > 5 // 5 cinco segundos
Foi postado vários exemplos, mas a logica toda de como fazer isso não postado.
Você precisa ter uma variável contando o seu tempo de inatividade e usar GETINPUTSTATE() para ver o tempo em milésimos de segundos que o sistema está em atividade( tanto teclado e mouse ), entenda que o GETINPUTSTATE() diz o tempo de ATIVIDADE do computador e não de INATIVIDADE.
Exemplo:
MSGINFO( SecToTime(GETINPUTSTATE()/1000) )

Essa rotina é só para gets, ou sistema inteiro?
Por exemplo deixar a tela principal do sistema aberta,sistema minimizado, só passar o mouse sem clicar, também funciona?
Hoje atualmente eu mudei para o TIMER da Hwgui, e funciona em todo o sistema, do que lembro quando usava HB_BackGroundAdd() também rodava em todo os sistema, mas tanto o HB_BackGroundAdd() como o TIMER da Hwgui eles não são rotinas MT que rodam varias rotinas ao mesmo tempo, então entenda que se tiver processando algum processo de por exemplo geração de dados para um relatório esse outro processo fica na fila para ser processado assim que liberar o processo atual, então entenda que por inatividade não basta o teclado e mouse não está sendo usado, mas também tem que está parado de processo de um laço como um DO WHILE, FOR NEXT e etc...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder