edutraini Posted April 3 Report Share Posted April 3 Boa tarde Pessoal, Será que existe alguma forma de fechar o sistema automaticamente por falta de uso Tenho uma situação que o usuario entra no sistema e por algum motivo, deixa o sistema aberto no seu usuario. Dessa forma outro usuario acaba usando sua senha Preciso achar uma solução para caso o sistema nao for usado por algum tempo ele feche Obrigado Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 3 Report Share Posted April 3 seria mais ou menos isso aqui: (peguei aqui no forum mesmo, mas não lembro de quem... acabei que não usei) Function Fnct_StartCounterTime () Define Timer oTimerExit of oWndMain Interval nInterval Action ( iif( sysIdleSecs()>nSecondsToOut, fExit(),)) oTimerExit:Activate() Return NIL function fExit() oTimerExit:Deactivate() //oTimerExit:End() MsgInfo( "Lembre de Fechar Sistema caso não vá mais usar","Sistema Inativo") oTimerExit:Activate() * MsgAlert('Sistema Será Fechado por Inatividade','SyS RlI') oWndMain:End() SET RESOURCES TO oImgFundo:End() oImgLogo:End() oFntMsg:End() FecharPrograma() * return .t. #pragma BEGINDUMP #include "windows.h" #include "hbapi.h" #include <stdio.h> WINUSERAPI BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO); typedef BOOL (WINAPI *GETLASTINPUTINFO_)(PLASTINPUTINFO); HB_FUNC( SYSIDLESECS ) { HINSTANCE handle= LoadLibrary("user32.dll"); if ( handle) { GETLASTINPUTINFO_ pFunc; pFunc = GetProcAddress( handle,"GetLastInputInfo" ); if (pFunc) { LASTINPUTINFO lpi; lpi.cbSize = sizeof(LASTINPUTINFO); if (!pFunc(&lpi)) { hb_retni(0); } else { hb_retnd( ( DOUBLE ) ( GetTickCount() - lpi.dwTime ) * 0.001 ); } } else { hb_retni(0); } } if (handle) { FreeLibrary( handle); } } #pragma ENDDUMP ***********************************************************************************************+ Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 3 Report Share Posted April 3 2 minutos atrás, Theotokos disse: seria mais ou menos isso aqui: (peguei aqui no forum mesmo, mas não lembro de quem... acabei que não usei) Function Fnct_StartCounterTime () Define Timer oTimerExit of oWndMain Interval nInterval Action ( iif( sysIdleSecs()>nSecondsToOut, fExit(),)) oTimerExit:Activate() Return NIL function fExit() oTimerExit:Deactivate() //oTimerExit:End() MsgInfo( "Lembre de Fechar Sistema caso não vá mais usar","Sistema Inativo") oTimerExit:Activate() * MsgAlert('Sistema Será Fechado por Inatividade','SyS RlI') oWndMain:End() SET RESOURCES TO oImgFundo:End() oImgLogo:End() oFntMsg:End() FecharPrograma() * return .t. #pragma BEGINDUMP #include "windows.h" #include "hbapi.h" #include <stdio.h> WINUSERAPI BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO); typedef BOOL (WINAPI *GETLASTINPUTINFO_)(PLASTINPUTINFO); HB_FUNC( SYSIDLESECS ) { HINSTANCE handle= LoadLibrary("user32.dll"); if ( handle) { GETLASTINPUTINFO_ pFunc; pFunc = GetProcAddress( handle,"GetLastInputInfo" ); if (pFunc) { LASTINPUTINFO lpi; lpi.cbSize = sizeof(LASTINPUTINFO); if (!pFunc(&lpi)) { hb_retni(0); } else { hb_retnd( ( DOUBLE ) ( GetTickCount() - lpi.dwTime ) * 0.001 ); } } else { hb_retni(0); } } if (handle) { FreeLibrary( handle); } } #pragma ENDDUMP ***********************************************************************************************+ Static oTimerExit Static nInterval * Function Main() * Public nSecondsToOut:= 55 //(segundos) nInterval := 1*60000 //(1 x 60000 = 1 minuto) Acrescentar isso no fotnte principal e chamar a função no ON INIT Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 3 Report Share Posted April 3 https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42429&sid=4e043eeb6afc332310628e35560d3d7a Quote Link to comment Share on other sites More sharing options...
edutraini Posted April 5 Author Report Share Posted April 5 Bom dia Theotokos Deu certo na verdade em vez de fechar o programa ele fecha a conexao do usuario que esta aberto e abre a tela para logar de novo ou seja usei a sua ideia Obrigado Theotokos 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 5 Report Share Posted April 5 22 minutos atrás, edutraini disse: Bom dia Theotokos Deu certo na verdade em vez de fechar o programa ele fecha a conexao do usuario que esta aberto e abre a tela para logar de novo ou seja usei a sua ideia Obrigado Bom dia. Nada impede que você cerre(feche) o programa em definitivo, somente o da estação de trabalho. abs. Regards, saludos. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 5 Report Share Posted April 5 42 minutos atrás, kapiaba disse: Bom dia. Nada impede que você cerre(feche) o programa em definitivo, somente o da estação de trabalho. abs. Regards, saludos. optei por fazer assim, porque no meu caso tinha usuário que abria uma venda, lança alguns produtos e sai para mostrar algo para o cliente, deixando tudo aberto... ai com tempo iria fechar o sistema e perder tudo que lançou, assim pede a senha novamente, o vendedor coloca a senha dele e segue a venda aberta... Quote Link to comment Share on other sites More sharing options...
edutraini Posted April 5 Author Report Share Posted April 5 exatamente a mesma situacao Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.