捕捉一段时间内没有任何鼠标操作并给出提示

    public partial class Form1 : Form, IMessageFilter
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Application.AddMessageFilter(this);
        }

        private static DateTime datetime;

        public bool PreFilterMessage(ref System.Windows.Forms.Message m)
        {
            //513为鼠标左键按下,515为鼠标左键双击
            if (m.Msg == 513 || m.Msg == 515)
            {
                datetime = DateTime.Now;
            }
            else
            {

      //当10秒没有操作鼠标后给出提示
                if (Datediff("s", DateTime.Now, datetime) > 10)
                {
                    datetime = DateTime.Now;
                    MessageBox.Show("超过五秒时没有操作");
                }
            }
            return false;
        }


        public static int Datediff(string type, DateTime begin_date, DateTime end_date)
        {
            TimeSpan ts = begin_date - end_date;
            switch (type)
            {
                case "d": return ts.Days;
                case "h": return ts.Days * 24 + ts.Hours;
                case "m": return ((ts.Days * 24 + ts.Hours) * 60) + ts.Minutes;
                case "s": return (((ts.Days * 24 + ts.Hours) * 60) + ts.Minutes) * 60 + ts.Seconds;
            } return ts.Days;
        }
    }

posted @ 2011-11-13 21:06  therockthe  阅读(140)  评论(0)    收藏  举报