首页 > 编程语言 >C# 鼠标帮助类

C# 鼠标帮助类

时间:2022-10-28 18:12:09浏览次数:48  
标签:帮助 鼠标 Point C# MoveMouseToPoint System MouseHelper int public

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);
        }

    }
}

  

标签:帮助,鼠标,Point,C#,MoveMouseToPoint,System,MouseHelper,int,public
From: https://www.cnblogs.com/YYkun/p/16836987.html

相关文章