如何避免鼠标移动10秒

本文关键字:10秒 移动 鼠标 何避免 | 更新日期: 2023-09-27 18:04:11

我使用User32.dll,运行应用程序,按下按钮获取信息。

我的问题是,当我拉一些数据,但当我移动我的鼠标在特定的元素,它可以停止这个过程,所以我需要移动我的鼠标到安全的地方,使其停留在那里2秒。

我找到了把它移到安全地方的方法

Cursor.Position = new System.Drawing.Point(3000, 0);

但是我如何让它停留在那里/停止移动2秒…

如何避免鼠标移动10秒

你可以创建一个计时器来循环这段代码:Cursor.Position = new System.Drawing.Point(3000, 0);

但这将是低效的。所以我建议让你的表单实现IMessageFilter。

然后在表单中添加以下代码:

Rectangle BoundRect;
Rectangle OldRect = Rectangle.Empty;
private void EnableMouse()
{
    Cursor.Clip = OldRect;
    Cursor.Show();
    Application.RemoveMessageFilter(this);
}
public bool PreFilterMessage(ref Message m)
{
    if (m.Msg == 0x201 || m.Msg == 0x202 || m.Msg == 0x203) return true;
    if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
    return false;
}
private void DisableMouse()
{
    OldRect = Cursor.Clip;
    // Arbitrary location.
    BoundRect = new Rectangle(50, 50, 1, 1); 
    Cursor.Clip = BoundRect;
    Cursor.Hide();
    Application.AddMessageFilter(this);
}  

这将隐藏光标,使其无法移动,并禁用鼠标左键和右键。