using System; using System.Runtime.InteropServices; namespace Muchinfo.MTPClient.Service { public class GetLastInputInfoHelp { [DllImport("user32.dll")] internal static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); /// /// 获取鼠标键盘不活动的时间 /// /// 结果 public static int GetLastInputTime() { LASTINPUTINFO lastInputInfo = new LASTINPUTINFO(); lastInputInfo.cbSize = Marshal.SizeOf(lastInputInfo); lastInputInfo.dwTime = 0; int idleTime = 0; if (GetLastInputInfo(ref lastInputInfo)) { idleTime = Environment.TickCount - lastInputInfo.dwTime; } return ((idleTime > 0) ? (idleTime / 1000) : 0); } } [StructLayout(LayoutKind.Sequential)] internal struct LASTINPUTINFO { [MarshalAs(UnmanagedType.U4)] public int cbSize; [MarshalAs(UnmanagedType.U4)] public int dwTime; } }