我想做一个小软件,就是当键盘或者鼠标5分钟没有操作,就判断空闲,自动把屏幕黑掉,这样可以省点环保。但是我不太清楚,如何来做这个判断,请各个高手不吝赐教。非常感谢了。

解决方案 »

  1.   

           //添加引用   using System.Runtime.InteropServices;       //创建结构体用于返回捕获时间
            [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);
            private static long GetLastInputTime() //获取键盘和鼠标没有操作的时间
            {
                LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
                vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);            //捕获时间
                if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
                return Environment.TickCount - (long)vLastInputInfo.dwTime;
            }
      

  2.   

    zhangming64432
    我试试去非常感谢你了
      

  3.   

            private void button1_Click(object sender, RoutedEventArgs e)
            {
                MessageBox.Show(Convert.ToInt32(GetLastInputTime()).ToString());
            }
    我用按钮无论隔多久点击,为什么只能得到156,157 ,172这三个值