using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace DM_Weight.util
{
    public class CheckComputerFreeState
    {
        /// 
        /// 创建结构体用于返回捕获时间
        /// 
        [StructLayout(LayoutKind.Sequential)]
        struct LASTINPUTINFO
        {
            /// 
            /// 设置结构体块容量
            /// 
            [MarshalAs(UnmanagedType.U4)]
            public int cbSize;
            /// 
            /// 抓获的时间
            /// 
            [MarshalAs(UnmanagedType.U4)]
            public uint dwTime;
        }
        [DllImport("user32.dll")]
        private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
        /// 
        /// 获取键盘和鼠标没有操作的时间
        /// 
        /// 用户上次使用系统到现在的时间间隔,单位为秒
        public static long GetLastInputTime()
        {
            LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
            vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
            if (!GetLastInputInfo(ref vLastInputInfo))
            {
                return 0;
            }
            else
            {
                var count = (Environment.TickCount & Int32.MaxValue) - (long)vLastInputInfo.dwTime;
                var icount = count / 1000;
                return icount;
            }
        }
    }
}