/// <summary> /// 移动鼠标 /// </summary> /// <param name="From_Handle_Toint">From控件Handle</param> /// <param name="To_Handle_Toint">To控件Handle</param> public static void Move(int From_Handle_Toint, int To_Handle_Toint) { DllImports.User32.RECT rectFrom = new DllImports.User32.RECT(); DllImports.User32.RECT rectTo = new DllImports.User32.RECT(); int i; DllImports.User32.GetWindowRect((IntPtr)From_Handle_Toint, ref rectFrom); DllImports.User32.GetWindowRect((IntPtr)To_Handle_Toint, ref rectTo); if ((rectFrom.left + rectFrom.right) / 2 - (rectTo.left + rectTo.right) / 2 > 0) { for (i = (rectFrom.left + rectFrom.right) / 2; i >= (rectTo.left + rectTo.right) / 2; i--) { DllImports.User32.SetCursorPos(i, (rectFrom.top + rectFrom.bottom) / 2); DllImports.Kernel32.Sleep(1); } } else { for (i = (rectFrom.left + rectFrom.right) / 2; i <= (rectTo.left + rectTo.right) / 2; i++) { DllImports.User32.SetCursorPos(i, (rectFrom.top + rectFrom.bottom) / 2); DllImports.Kernel32.Sleep(1); } } if ((rectFrom.top + rectFrom.bottom) / 2 - (rectTo.top + rectTo.bottom) / 2 > 0) { for (i = (rectFrom.top + rectFrom.bottom) / 2; i >= (rectTo.top + rectTo.bottom) / 2; i--) { DllImports.User32.SetCursorPos((rectTo.left + rectTo.right) / 2, i); DllImports.Kernel32.Sleep(1); } } else { for (i = (rectFrom.top + rectFrom.bottom) / 2; i <= (rectTo.top + rectTo.bottom) / 2; i++) { DllImports.User32.SetCursorPos((rectTo.left + rectTo.right) / 2, i); DllImports.Kernel32.Sleep(1); } } }