我使用User32.dll,运行应用程序,按下按钮获取信息。
我的问题是当我提取一些数据时,但是当我将鼠标移到特定元素上时它可以停止这个过程,播种我需要将鼠标移动到安全的地方并让它在那里停留2秒。
我找到了将它移到安全地方的方法
Cursor.Position = new System.Drawing.Point(3000, 0);
但我如何让它停留在那里/停止移动2秒..
答案 0 :(得分:1)
你可以制作一个循环代码的计时器:
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);
}
这将隐藏光标,使其无法移动它并禁用鼠标右键和左键。