访问量: 30427次,访客数: 25793人,浏览量: 1次 
首页  编辑  

得到用户空闲的时间

Tags: /C#/API调用/   Date Created: Tue Jun 10 2008 01:18:08 GMT+0000 (Coordinated Universal Time)

using System . Runtime . InteropServices;

[ StructLayout ( LayoutKind . Sequential)]

struct LASTINPUTINFO

{

   [ MarshalAs ( UnmanagedType . U4)]

    public int cbSize;

   [ MarshalAs ( UnmanagedType . U4)]

    public uint dwTime;

}

[ DllImport ( "user32.dll" )]

static extern bool GetLastInputInfo( ref LASTINPUTINFO plii);

static long GetLastInputTime()

{

    LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO ();

   vLastInputInfo . cbSize = Marshal . SizeOf(vLastInputInfo);

    if ( ! GetLastInputInfo( ref vLastInputInfo)) return 0 ;

    return Environment . TickCount - ( long )vLastInputInfo . dwTime;

}

private void Form1_Load( object sender , EventArgs e)

{

   timer1 . Enabled = true ;

}

private void timer1_Tick( object sender , EventArgs e)

{

   Text = string . Format( "{0} , GetLastInputTime() / 1000 );

}