欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace ZB.QueueSys.Common
{
    public class MouseHelper
    {
        //定义一个用于保存静态变量的实例
        private static MouseHelper instance = null;
        //定义一个保证线程同步的标识
        private static readonly object locker = new object();
        //构造函数为私有,使外界不能创建该类的实例
        private MouseHelper() { }
        public static MouseHelper Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (locker)
                    {
                        if (instance == null) instance = new MouseHelper();
                    }
                }
                return instance;
            }
        }

        /// <summary>
        /// 引用user32.dll动态链接库(windows api),
        /// 使用库中定义 API:SetCursorPos 
        /// </summary>
        [DllImport("user32.dll")]
        private static extern int SetCursorPos(int x, int y);
        /// <summary>
        /// 移动鼠标到指定的坐标点
        /// </summary>
        public void MoveMouseToPoint(Point p)
        {
            SetCursorPos(p.X, p.Y);
        }
        /// <summary>
        /// 设置鼠标的移动范围
        /// </summary>
        public void SetMouseRectangle(Rectangle rectangle)
        {
            System.Windows.Forms.Cursor.Clip = rectangle;
        }
        /// <summary>
        /// 设置鼠标位于屏幕中心
        /// </summary>
        public void SetMouseAtCenterScreen()
        {
            int winHeight = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
            int winWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
            Point centerP = new Point(winWidth / 2, winHeight / 2);
            MoveMouseToPoint(centerP);
        }

        public void MoveMouse(DataGridView dgv)
        {
            int x = dgv.Location.X + 100;
            int y = dgv.Location.Y + 50;
            Point p = new Point(x, y);
            Point pp = dgv.PointToScreen(p);
            //MouseHelper.Instance.MoveMouseToPoint(pp);
            MoveMouseToPoint(pp);
            int yy = Screen.PrimaryScreen.WorkingArea.Height - 180;
            int xx = Screen.PrimaryScreen.WorkingArea.Width - 180;
            Point px = new Point(xx, yy);
            //MouseHelper.Instance.MoveMouseToPoint(px);
            MoveMouseToPoint(px);
        }

    }
}

  

posted on 2022-10-28 18:04  sunwugang  阅读(21)  评论(0编辑  收藏  举报