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 的参考。
我是 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 的参考。