Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter inactivité utilisateur

5 réponses
Avatar
Antoine Labusquière
Bonjour,

Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé sur la
page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout d'un
certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...

Merci d'avance

5 réponses

Avatar
Fred
Dans : news:46690879$0$6066$,
Antoine Labusquière disait :
Bonjour,



Bonjour,

Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé
sur la page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout
d'un certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...



Et pourquoi pas en javascript ?
On peut rediriger la page avec window.location.href
Reste à voir si on peut intercepter les évènements utilisateur pour
repousser en permanence l'appel de cette instruction
(avec setTimeOut)

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Antoine Labusquière
En fait, on a testé cette solution en javascript, mais on n'est pas
totalement satisfait du résultat (surtout la détection de l'activité de
l'utilisateur).
C'est pour ça qu'on explore d'autres pistes, notamment en vb.

Merci de ton aide

"Fred" a écrit dans le message de news:

Dans : news:46690879$0$6066$,
Antoine Labusquière disait :
Bonjour,



Bonjour,

Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé
sur la page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout
d'un certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...



Et pourquoi pas en javascript ?
On peut rediriger la page avec window.location.href
Reste à voir si on peut intercepter les évènements utilisateur pour
repousser en permanence l'appel de cette instruction
(avec setTimeOut)

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)


Avatar
Antoine Labusquière
Je viens de penser à une autre piste:
Remplacer l'écran de veille par mon exécutable maison, et juste recharger la
page d'accueil d'IE.
D'où ma question, bien plus simple:
Y'a t-il une fonction ou une API pour piloter IE sour VB.net ?

Merci




"Antoine Labusquière" a écrit dans le
message de news: 46690879$0$6066$
<> Bonjour,

Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé sur la
page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout d'un
certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...

Merci d'avance




Avatar
Xavier
Bonjour, j'ai un bout de code que j'ai trouvé sur le net (je ne sais
plus trop ou, désolé pour l'auteur).

debut code ----------------------------
#Region " Idle User "
'récupère la dernière entée utilisateur
Private Declare Function GetLastInputInfo Lib "User32.dll" (ByRef
lii As LASTINPUTINFO) As Boolean
'mettre en veille l'exécutable
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'utilisé dans l'api GetLastInputInfo
<Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential)>
Public Structure LASTINPUTINFO
Public cbSize As Int32
Public dwTime As Int32
End Structure

'récupere l'idle en milliseconds
Public ReadOnly Property IdleTimeInTicks() As Int32

Get

Dim lii As New LASTINPUTINFO

lii.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(lii)

If GetLastInputInfo(lii) Then

Return Environment.TickCount - lii.dwTime

End If

End Get

End Property

'transforme l'idle en seconde
Public ReadOnly Property IdleTimeInSecond() As Double
Get
Return IdleTimeInTicks / 1000
End Get
End Property

'procédure à placer dans le code de ton exe
'juste avant l'instruction pour relancer la page d'accueil
Public Sub WaitForIdle()

Do
If (Me.IdleTimeInSecond < 60 Then 'moins d'une minute
'msgbox(" ATTENTE INACTIVITE UTILISATEUR ")
System.Threading.Thread.Sleep(60000) 'pause d'une
minute
Else
Exit Do
End If
Loop
End Sub
#End Region
fin code ------------------------------


j'espère que cela t'aideras.

++ Xav


Antoine Labusquière a écrit :
Je viens de penser à une autre piste:
Remplacer l'écran de veille par mon exécutable maison, et juste recharger la
page d'accueil d'IE.
D'où ma question, bien plus simple:
Y'a t-il une fonction ou une API pour piloter IE sour VB.net ?

Merci




"Antoine Labusquière" a écrit dans le
message de news: 46690879$0$6066$
<> Bonjour,
Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé sur la
page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout d'un
certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...

Merci d'avance








Avatar
Antoine Labusquière
Merci, mais finalement, en créant un exe transformé en scr, je m'affranchi
de ce problème de gestion de l'activité de l'utilisateur.
J'avais trouvé ce code aussi, mais je n'ai pas réussi à le faire fonctionner
correctement.


"Xavier" a écrit dans le message de news:

Bonjour, j'ai un bout de code que j'ai trouvé sur le net (je ne sais plus
trop ou, désolé pour l'auteur).

debut code ----------------------------
#Region " Idle User "
'récupère la dernière entée utilisateur
Private Declare Function GetLastInputInfo Lib "User32.dll" (ByRef lii
As LASTINPUTINFO) As Boolean
'mettre en veille l'exécutable
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'utilisé dans l'api GetLastInputInfo
<Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential)>
Public Structure LASTINPUTINFO
Public cbSize As Int32
Public dwTime As Int32
End Structure

'récupere l'idle en milliseconds
Public ReadOnly Property IdleTimeInTicks() As Int32

Get

Dim lii As New LASTINPUTINFO

lii.cbSize =
System.Runtime.InteropServices.Marshal.SizeOf(lii)

If GetLastInputInfo(lii) Then

Return Environment.TickCount - lii.dwTime

End If

End Get

End Property

'transforme l'idle en seconde
Public ReadOnly Property IdleTimeInSecond() As Double
Get
Return IdleTimeInTicks / 1000
End Get
End Property

'procédure à placer dans le code de ton exe
'juste avant l'instruction pour relancer la page d'accueil
Public Sub WaitForIdle()

Do
If (Me.IdleTimeInSecond < 60 Then 'moins d'une minute
'msgbox(" ATTENTE INACTIVITE UTILISATEUR ")
System.Threading.Thread.Sleep(60000) 'pause d'une
minute
Else
Exit Do
End If
Loop
End Sub
#End Region
fin code ------------------------------


j'espère que cela t'aideras.

++ Xav


Antoine Labusquière a écrit :
Je viens de penser à une autre piste:
Remplacer l'écran de veille par mon exécutable maison, et juste recharger
la page d'accueil d'IE.
D'où ma question, bien plus simple:
Y'a t-il une fonction ou une API pour piloter IE sour VB.net ?

Merci




"Antoine Labusquière" a écrit dans
le message de news: 46690879$0$6066$
<> Bonjour,
Nous devons mettre en place des bornes d'accès internet pour un salon.
Windows est totalement verrouillé, seul internet explorer est lancé sur
la page d'accueil sur salon.
L'idée serait de relancer automatiquement la page d'accueil au bout d'un
certain délai d'inactivité de l'utilisateur (souris/clavier).
J'ai trouvé des bouts de code, mais rien ne fonctionnait correctement.
L'idéal serait de lancer ce code comme un service je suppose...

Merci d'avance