c# 在没有控件的情况下检测 mousedown

c# detect mousedown without controls

我是 c# 的新手,想为游戏编写一个点击机器人,它应该在我按住鼠标按钮时点击并在我释放鼠标按钮时停止点击。现在我的问题是当我在另一个 window.

时如何检查鼠标按钮是否被按住并单击

您可以添加邮件过滤器:

Application.AddMessageFilter(new MyMessageFilter());

其中 MyMessageFilter 是 class 实现 IMessageFilter。示例:

class MyMessageFilter : IMessageFilter
{
    public bool PreFilterMessage(ref Message m)
    {
        const int WM_LBUTTONDOWN = 0x0201, WM_LBUTTONUP = 0x0202;

        switch (m.Msg) {
            case WM_LBUTTONDOWN:
                System.Diagnostics.Debug.WriteLine("Left button down " + DateTime.Now);
                return false;
            case WM_LBUTTONUP:
                System.Diagnostics.Debug.WriteLine("Left button up " + DateTime.Now);
                return false;
        }
        return false;
    }
}

如果您 return true,这表明您已经处理了消息并且您不希望任何控件获取此消息。 IE。 true 停用相应的 Form 或 Control 事件。

Message 结构的 HWnd 属性 return 是受影响 window 的 Window 句柄。

在这里,您可以找到 Mouse Input Notifications 的参考。