0

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

我正在开发一个程序,其中重放表单中执行的所有操作。到目前为止我所做的是捕获光标位置和点击并将它们保存在数据库中(项目的要求)。现在,当我重播它时,它会通过消息框告诉鼠标左键单击或右键单击。我有多种形式(父母和孩子,使用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);
}
4

0 回答 0