COMO QUE EU POSSO FAZER ISTO?
o usuário abriu meu programa certo... aà se ele passar uns 5min... e ele não mexer em nada... não mexer com computador (digitar nada no teclado... e naum mexer com o mouse..) o programa sai.... mas se ele mexer naum acontece nada....
valew !!
valew !!
hummmm... ja tentei isso.. é meio cmplicado...
vc pode fazer o seguinte:
quando abrir o programa, manada para um form e lá neste form vc poe um timer para 5 minutos...
e um botão com a insvcrição (avançar) e um label com um texto tipo:"bem vnido ao sistema, etc,etc,etc)
se ele teclar no avançar , desliga o form do timer e continua o programa na boa...
se ele não clicar em 5 minutos, sai do sistema...
pode ser uma ideia???
vc pode fazer o seguinte:
quando abrir o programa, manada para um form e lá neste form vc poe um timer para 5 minutos...
e um botão com a insvcrição (avançar) e um label com um texto tipo:"bem vnido ao sistema, etc,etc,etc)
se ele teclar no avançar , desliga o form do timer e continua o programa na boa...
se ele não clicar em 5 minutos, sai do sistema...
pode ser uma ideia???
Nao Sei se Isso te Ajuda ou te da uma Ideia
Vamos la
No modulo bas
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Public Type PointAPI
X as Long
Y as Long
End Type
Public Contador as Integer
Public LastPosition as Long
Public Position as Long
No Evento do mouse_Move do Form
PointAPI.X = X
PointAPI.Y = Y
No Controle Timer
1º Defina Timer1.interval = 1000
Private Sub Timer1_Timer()
Contador = Contador +1
LastPosition = GetCursorPos(PointAPI)
IF GetCursorPos(PonitAPI) = LastPosition
IF Contador = 300 then 'Equivale a 5 Minutos
end
end IF
End IF
End Sub
Vamos la
No modulo bas
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Public Type PointAPI
X as Long
Y as Long
End Type
Public Contador as Integer
Public LastPosition as Long
Public Position as Long
No Evento do mouse_Move do Form
PointAPI.X = X
PointAPI.Y = Y
No Controle Timer
1º Defina Timer1.interval = 1000
Private Sub Timer1_Timer()
Contador = Contador +1
LastPosition = GetCursorPos(PointAPI)
IF GetCursorPos(PonitAPI) = LastPosition
IF Contador = 300 then 'Equivale a 5 Minutos
end
end IF
End IF
End Sub
mas teria que ter algo para "vigiar" o teclado tb.. e isso vc teria que fazer em cada form...
Tem as rotinas de captura de teclas aqui no VBMania que podem ser usadas para saber se o usuário está teclando algo.
Com essa rotina e a rotina de captura de movimento do mouse, vc poderá determinar se o usuário não está usando o computador.
Com essa rotina e a rotina de captura de movimento do mouse, vc poderá determinar se o usuário não está usando o computador.
mas e o movimento do mouse???
coloque um timer em seu frm q esta abreto com o intervalo de 5minutos e digite o seguinte codigo:
end
não esqueça de finalizar o topico.
end
não esqueça de finalizar o topico.
bom ai vai:
-------------
Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long
Private Type PointAPI
X As Long
Y As Long
End Type
Dim Counter As Integer
Dim LastPosition As PointAPI
Dim NowPosition As PointAPI
Dim NP As PointAPI
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
GetCursorPos LastPosition
End Sub
'-----------------------------
'Defina Timer1.interval = 1000
Private Sub Timer1_Timer()
GetCursorPos NowPosition
If NowPosition.X = LastPosition.X And NowPosition.Y = LastPosition.Y Then
If Counter = 300 Then 'Equivale a 5 Minutos
End
Else
Counter = Counter + 1
End If
End If
End Sub
-------------
Testado e aprovado
-------------
Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long
Private Type PointAPI
X As Long
Y As Long
End Type
Dim Counter As Integer
Dim LastPosition As PointAPI
Dim NowPosition As PointAPI
Dim NP As PointAPI
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
GetCursorPos LastPosition
End Sub
'-----------------------------
'Defina Timer1.interval = 1000
Private Sub Timer1_Timer()
GetCursorPos NowPosition
If NowPosition.X = LastPosition.X And NowPosition.Y = LastPosition.Y Then
If Counter = 300 Then 'Equivale a 5 Minutos
End
Else
Counter = Counter + 1
End If
End If
End Sub
-------------
Testado e aprovado
Crie uma sub e uma variavel publica como mostro aqui
Public tempo As Date
Public Sub ZeraTempo()
tempo = Time
End Sub
Em todos os botões e no formulário coloque uma chamda para esta sub "ZeraTempo"
E no "Form_MouseMove" coloque também uma chamada para esta Sub.
Coloque um Timer com a propriedade "Interval" como 1000 (isto é, 1 seg).
Coloque no código no Timer a segunte sub.
Private Sub Timer1_Timer()
if tempo+300 >= Time then End
End Sub
Ou seja o Timer testará a cada segundo se possou 300 segundos (5 min) da útima operação realizada.
Se vc clicar ou mover o mouse sobre qualquer controle, ele zera esta propriedade e começa a conata novamente o tempo.
Simples e funcional!
Public tempo As Date
Public Sub ZeraTempo()
tempo = Time
End Sub
Em todos os botões e no formulário coloque uma chamda para esta sub "ZeraTempo"
E no "Form_MouseMove" coloque também uma chamada para esta Sub.
Coloque um Timer com a propriedade "Interval" como 1000 (isto é, 1 seg).
Coloque no código no Timer a segunte sub.
Private Sub Timer1_Timer()
if tempo+300 >= Time then End
End Sub
Ou seja o Timer testará a cada segundo se possou 300 segundos (5 min) da útima operação realizada.
Se vc clicar ou mover o mouse sobre qualquer controle, ele zera esta propriedade e começa a conata novamente o tempo.
Simples e funcional!
putz... tá mto complicado essas paradas pa entender... se alguem tiver um projetinho aÃ.. ficaria mto grato! 

Tópico encerrado , respostas não são mais permitidas