MOUSE点击重播

时间:2013-07-24 06:37:35

标签: c#

以下是该项目的简要背景以及迄今为止我所做的工作:

我正在制作一个程序,其中重放表格中执行的所有操作。 到目前为止我所做的是捕获光标位置和点击并将它们保存在数据库中(项目的要求)。现在,当我重播它时,它会通过消息框告诉鼠标左键单击或右键单击。我有多种形式(父和子,使用mdi ,它们是链接的。)

我的问题:

当我重播时,我希望所有事件再次执行。如果单击某个按钮并打开另一个表单,我希望它再次发生。程序应该告诉我们目前的形式。

我的程序显示鼠标移动和点击但不执行操作(例如,如果录制时我按了一个按钮,稍后重播它会告诉鼠标左键单击,但实际上并没有点击按钮)

public void display_one(int i)
{
    Cursor.Position = new System.Drawing.Point(temporary[i].mousePositionX, temporary[i].mousePositonY);
    if (temporary[i].mouseRightClick)
    {
        MessageBox.Show("Right Click");
        MouseRightClick();
    }
    if (temporary[i].mouseLeftClick)
    {
        MessageBox.Show("Left Click");
        MouseLeftClick();
    }
}

public void MouseLeftClick()
{
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Thread.Sleep(50);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}

public void MouseRightClick()
{
    mouse_event(MOUSEEVENTF_RIGHTDOWN , 0, 0, 0, 0);
    Thread.Sleep(50);
    mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
}

0 个答案:

没有答案