Bonjour,

J'ai une application qui doit détecter la présence d'un utilisateur et effectuer une action (fermeture de session, ...) par exemple si ce dernier est absent pendant une période de 5min !

J'ai essayé avec :
  1. Cursor.Position couplé avec 2 timers
  2. [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=new LASTINPUTINFO();
    LInInfo.cbSize = LASTINPUTINFO.SizeOf;
    if (GetLastInputInfo(ref LInInfo) == true)
    {
    bool test = (GetTickCount() - LInInfo.dwTime) > idleTimeoutSecond;
    return (GetTickCount() - LInInfo.dwTime) > idleTimeoutSecond;
    }
    else
    return false;
    }



Mon application fonctionne très bien si je la lance dans la session de l'utilisateur mais pas en tant que service !

je sèche un peu quelqu'un a une idée ?

Merci de votre aide