C#怎么实现鼠标连点呢?

鼠标左键按下后开始连点,鼠标左键松开后停止连点。(全局鼠标连点,不仅限于自身程序)
我先用全局鼠标钩子判断目前鼠标的左键是按下还是放开。
但是因为我有用驱动级的模拟键击的原因,在模拟鼠标左键放开的时候,我的全局鼠标钩子就直接把它当成为我鼠标左键松开了。这样就无法实现连点。
请问各位大神、前辈要怎么才能实现鼠标连点呢?(要全局鼠标连点,就像全局热键那样,窗体失去焦点或最小化也能用。我用的是驱动级的鼠标点击。)

使用定时器判断鼠标是否松开就行了:
1.鼠标按下
2.启用定时器&启用连点功能
3.每次检测到鼠标按下都对定时器清零
4.判断定时器的计时远大于预设的连点周期时则停止连点程序

鼠标钩子里面可以这样用吧:
private int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
Win32Api.MouseHookStruct MyMouseHookStruct = (Win32Api.MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32Api.MouseHookStruct));
if (nCode < 0)
{
return Win32Api.CallNextHookEx(hHook, nCode, wParam, lParam);
}
else
{
//判断是否是鼠标点击 规避鼠标移动函数
if (wParam.ToString("X2") == "201" || wParam.ToString("X2") == "204")
{
MouseButtons button = MouseButtons.Left;
///这里的“1”就是操作次数
var e = new MouseEventArgs(button, 1, point.X, point.Y, 0);
MouseClickEvent?.Invoke(this, e);
this.Point = new Point(MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y);

                                    这是操作系统事件
                //return Win32Api.CallNextHookEx(hHook, nCode, wParam, lParam);
            }
            return default(int);
        }
    }


            简单备注了下下,你看看试试

后来,又思考了下,驱动级的鼠标连点,用物理鼠标来控制的话,通过监听系统消息是不行的,
你需要监听物理鼠标的USB-HID通信包,就像Bus Hound软件的功能那样。
这样就能准确的判断物理鼠标的点击动作了。

这个问题已经解决了,谢谢帮助