如何避免鼠标移动10秒
本文关键字:10秒 移动 鼠标 何避免 | 更新日期: 2023-09-27 18:04:11
我使用User32.dll,运行应用程序,按下按钮获取信息。
我的问题是,当我拉一些数据,但当我移动我的鼠标在特定的元素,它可以停止这个过程,所以我需要移动我的鼠标到安全的地方,使其停留在那里2秒。
我找到了把它移到安全地方的方法
Cursor.Position = new System.Drawing.Point(3000, 0);
但是我如何让它停留在那里/停止移动2秒…
你可以创建一个计时器来循环这段代码: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);
}
这将隐藏光标,使其无法移动,并禁用鼠标左键和右键。