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);
}
}
}
博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!

浙公网安备 33010602011771号