C#winform判断鼠标30秒不动就关闭窗口

    public partial class BaseForm : Form
    {
        private Timer timer;
        int x, y;
        DateTime start;
        bool ff = true; 

        public BaseForm()
        {
            timer = new Timer();

            x = Control.MousePosition.X;
            y = Control.MousePosition.Y;

            timer.Interval = 1000;
            timer.Tick += new EventHandler(timer_Tick);
            timer.Start();
        }

        protected void timer_Tick(object sender, EventArgs e)
        {
            int x1 = Control.MousePosition.X;
            int y1 = Control.MousePosition.Y;

            if ((x == x1) && (y == y1) && ff)
            {
                start = DateTime.Now;
                ff = false;
            }
            if (x != x1 || y != y1)
            {
                x = x1;
                y = y1;
                start = DateTime.Now;
                ff = true;
            }
            TimeSpan ts = DateTime.Now.Subtract(start);
            if (ts.Seconds > 5) Environment.Exit(0);  //把5改成30,就是30秒
        }

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            start = DateTime.Now;
            return base.ProcessCmdKey(ref msg, keyData);
        }
    }

 

posted @ 2017-08-19 09:23  恋上微笑的天使  阅读(1384)  评论(0编辑  收藏  举报