C# 在按住鼠标左键的同时重复单击

C# 在按住鼠标左键的同时重复单击,c#,winforms,C#,Winforms,我一直在研制一款c#自动点击器,但有一个问题让我停了下来。 我想我的自动点击反复按下LMB,同时我按住鼠标按钮1(左)。 我这样做的方式是: private void GlobalHookMouseDownExt(object sender, MouseEventExtArgs e) { if (e.Button == MouseButtons.Left) AutoClick.Start(); } public void

我一直在研制一款c#自动点击器,但有一个问题让我停了下来。 我想我的自动点击反复按下LMB,同时我按住鼠标按钮1(左)。 我这样做的方式是:

    private void GlobalHookMouseDownExt(object sender, MouseEventExtArgs e)
    {
        if (e.Button == MouseButtons.Left)
            AutoClick.Start();
    }

    public void autoclick()
    {
      while(true)
        {
          mouse_event(0x02,(uint)Cursor.Position.X,(uint)Cursor.Position.Y,0,0); //LMB DOWN
          Thread.Sleep(100);
          mouse_event(0x04,(uint)Cursor.Position.X,(uint)Cursor.Position.Y,0,0); //LMB UP
            Thread.Sleep(1000); //1 click per second
        }
    }

如果我按下LMB,它将开始检查,如果我按下LMB,它将启动autoclick线程,然后该线程将发送一个mousebutton down和mousebutton up事件,取消我的检查。即使我还在按住我的鼠标,什么也没发生。
我做错了什么?如果您有更好的方法,请告诉我。

“如果我按下LMB,它将开始检查”-实际上您检查
鼠标按钮。中间
。尝试按itI修改它,仍然不起作用。我的建议-您需要在
向下
向上
完成之间设置一些延迟,但这仍然不能解决我的问题:(我假设这是一个缩减集。您在哪里停止自动单击计时器/线程/背景线程?最好是,将您的真实代码发布,因为错误在其他地方(我假设这是因为您在鼠标向上事件中终止了clicker线程,您正在从autoclick例程中触发该事件)。