Les Snippets

Connexion

Détecter l'activité de l'utilisateur

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 31/10/2008 23:53:58 et initié par Willi [Liste]
Date de mise à jour : 01/11/2008 00:00:35
Vue : 4170
Catégorie(s) : Système
Langages dispo pour ce code :
- C# 1.x, C# 2.x, C# 3.x
- VB 2005, VB 2008, VB.NET 1.x
- Delphi 5
- VB6, VBA



Langage : C# 1.x , C# 2.x , C# 3.x
Date ajout : 31/10/2008
Posté par Willi [Liste]
DateMAJ : 01/11/2008

[DllImport("kernel32.dll",SetLastError=true)]
static extern uint GetTickCount();
[DllImport("user32.dll",SetLastError=true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
[StructLayout( LayoutKind.Sequential )]
struct LASTINPUTINFO
{
    public static readonly int SizeOf = Marshal.SizeOf(typeof(LASTINPUTINFO));
    [MarshalAs(UnmanagedType.U4)]
    public int cbSize;    
    [MarshalAs(UnmanagedType.U4)]
    public uint dwTime;
}
public static bool IsInputIdle(int idleTimeoutSecond)
{
  LASTINPUTINFO LInInfo;
  LInInfo.cbSize = LASTINPUTINFO.SizeOf();
  if (GetLastInputInfo(ref LInInfo) != 0)
  {
    return (GetTickCount() - LInInfo.dwTime) > idleTimeoutSecond;
  }
  else
    return false;
}

Remarque :
Ajouter la directive using System.Runtime.InteropServices.
Mettre les déclarations des méthodes natives et la méthode IsInputIdle dans une classe.
représente la durée en seconde. L'activité de l'utilisateur est basé dessus.
Langage : VB.NET 1.x , VB 2005 , VB 2008
Date ajout : 31/10/2008
Posté par Willi [Liste]
<DllImport("kernel32.dll", SetLastError := True)> _
Shared Function GetTickCount() As UInteger
End Function

<DllImport("user32.dll", SetLastError := True)> _
Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Boolean
End Function

<StructLayout(LayoutKind.Sequential)> _
Structure LASTINPUTINFO
  Public Shared ReadOnly SizeOf As Integer = Marshal.SizeOf(GetType(LASTINPUTINFO))
  <MarshalAs(UnmanagedType.U4)> _
  Public cbSize As Integer
  <MarshalAs(UnmanagedType.U4)> _
  Public dwTime As UInteger
End Structure

Public Shared Function IsInputIdle(ByVal idleTimeoutSecond As Integer) As Boolean
  Dim LInInfo As LASTINPUTINFO
  LInInfo.cbSize = LASTINPUTINFO.SizeOf()
  If GetLastInputInfo(LInInfo) <> 0 Then
    Return (GetTickCount() - LInInfo.dwTime) > idleTimeoutSecond
  Else
    Return False
  End If
End Function
Langage : Delphi 5
Date ajout : 01/11/2008
Posté par cirec [Liste]
function IsInputIdle(const idleTimeoutSecond: Cardinal): Boolean;
var
  LInInfo: TLastInputInfo;
begin
  LInInfo.cbSize := SizeOf(TLastInputInfo);
  if GetLastInputInfo(LInInfo)  then
    Result := (GetTickCount - LInInfo.dwTime) > idleTimeoutSecond
  else
    Result := False;
end;


Langage : VB6 , VBA
Date ajout : 13/11/2008
Posté par Charles Racaud [Liste]
Private Type LASTINPUTINFO
  cbSize As Long
  dwTime As Long
End Type
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Long
Public Function IsInputIdle(ByVal idleTimeoutSecond As LongAs Boolean
  Dim LInInfo As LASTINPUTINFO
  LInInfo.cbSize = Len(LInInfo)
  If Not GetLastInputInfo(LInInfo) = 0 Then
    IsInputIdle = ((GetTickCount() - LInInfo.dwTime) > idleTimeoutSecond)
  Else
    IsInputIdle = False
  End If
End Function



Codes sources en rapport avec : Présence, Utilisateur, Input, Idle, Activité

{Visual Basic, VB6, VB.NET, VB 2005} CISUSERSLEEP - DÉTECTER L'ABSENCE DE L'UTILISATEUR
Le code que je vous propose est composé d'une classe VB permettant de détecter facilement la présenc...

{IRC} SCRIPT POUR ADMIN STRESSÉ AFFRONTANT UNE URGENCE.
L'idée étant que quand on a 20 clones qui débarquent d'un coup sur le chan, c'est chiant de perdre d...

{Visual Basic, VB6, VB.NET, VB 2005} MOT DE PASS AVEC POSSIBILITÉ DE MULTIUSER
Protection d'une application avec mot de pass login, avec possibilité de créer plusieurs admin et pl...

{Delphi} LES TOURS DE HANOÏ (( MODE GRAPHIQUE UTILISATEUR / RÉSOLUTION GRAPHIQUE ))
Définition : Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien ...

{Javascript / DHTML} CLEAR D'UN INPUT FILE
But du Jeu... - Effacer la valeur d'un INPUT type FILE propriété qui se trouve être en lecture seul...

{Javascript / DHTML} OBLIGER UN UTILISATEUR DE COCHER UNE CHECKBOX POUR VALIDER UN FORMULAIRE.
Ce code oblige tous simplement l'utilisateur a cocher un casse pour valider un formulaire, par exemp...

{Visual Basic, VB6, VB.NET, VB 2005} RECHERCHE DES INFORMATIONS UTILISATEURS / GROUPES / COMPUTERS DANS ACTIVE DIRECTORY
Bonjour, Ne sachant pas comment restaurer l'appartenance à un groupe AD, j'ai créé ce petit scrip...

{C# / C#.NET} [.NET3] WF - EXEMPLE D'ACTIVITÉS PARALLÈLES
Démo sur les activités parallèles avec Workflow Foundation. Le tuto associé est disponible ici: htt...

{Visual Basic, VB6, VB.NET, VB 2005} OCX REGISTRE
Ce contrôle sert à simplifier la programmation utilisant la base de registre. ...

{PHP} AJOUTER UN UTILISATEUR SUR UN SERVEUR FTP FILEZILLA
Bonjour a tous! Il y a longtemps que je n'ai pas posté de code ici, mais je me suis dit que celui-c...