[DllImport("USER32.DLL",CallingConvention=CallingConvention.StdCall)] private static extern int GetCursorPos (ref Point lpPoint); [DllImport("USER32.DLL",CallingConvention=CallingConvention.StdCall)] private static extern int GetKeyboardState(ref byte lpKeyState); private Point ptOld=new Point(0,0); private void Form1_Load(object sender, System.EventArgs e) { GetCursorPos(ref ptOld); //启动时鼠标所处的位置 } private void timer1_Tick(object sender, System.EventArgs e) { byte[] bytCurKeyState=new byte[256]; GetKeyboardState(ref bytCurKeyState[0]); for (int i=0;i<256;i++) { if (bytCurKeyState[i] > 1 ) //检查当前是否有个键盘被按下(包括鼠标) { Close(); } } Point pt=new Point(0,0); GetCursorPos(ref pt); if (!pt.Equals(ptOld)) //检查鼠标是否移动了 { Close(); } } |