C# 判斷系統空閒(鍵盤、鼠標不操做一段時間)

利用windows API函數 GetLastInputInfo()來判斷系統空閒windows

//添加引用 using System.Runtime.InteropServices;函數

 1   // 建立結構體用於返回捕獲時間
 2   [StructLayout(LayoutKind.Sequential)]
 3   struct LASTINPUTINFO
 4   {
 5   // 設置結構體塊容量
 6   [MarshalAs(UnmanagedType.U4)]
 7   public int cbSize;
 8   // 捕獲的時間
 9   [MarshalAs(UnmanagedType.U4)]
10   public uint dwTime;
11   }
12   [DllImport("user32.dll")]
13   private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
14 // 獲取鍵盤和鼠標沒有操做的時間
15   private static long GetLastInputTime() 
16   {
17   LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
18   vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
19   // 捕獲時間
20   if (!GetLastInputInfo(ref vLastInputInfo))
21        return 0;
22   else
23      return Environment.TickCount - (long)vLastInputInfo.dwTime;
24   } 
相關文章
相關標籤/搜索