54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								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
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 创建结构体用于返回捕获时间
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        [StructLayout(LayoutKind.Sequential)]
							 | 
						|||
| 
								 | 
							
								        struct LASTINPUTINFO
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 设置结构体块容量
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            [MarshalAs(UnmanagedType.U4)]
							 | 
						|||
| 
								 | 
							
								            public int cbSize;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 抓获的时间
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            [MarshalAs(UnmanagedType.U4)]
							 | 
						|||
| 
								 | 
							
								            public uint dwTime;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        [DllImport("user32.dll")]
							 | 
						|||
| 
								 | 
							
								        private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取键盘和鼠标没有操作的时间
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns>用户上次使用系统到现在的时间间隔,单位为秒</returns>
							 | 
						|||
| 
								 | 
							
								        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;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |