Example #1
0
        /// <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);
                }
            }
        }
Example #2
0
		/// <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);
				}
			}
		}