gpt4 book ai didi

c# - WinForms 鼠标捕获

转载 作者:行者123 更新时间:2023-11-30 16:33:49 26 4
gpt4 key购买 nike

我有 Windows 窗体应用程序,我需要捕获窗口外的鼠标移动。我在窗口类中的简化代码是:

private void ButtonOnClick(object sender, EventArgs e)
{
Capture = true;
MouseMove += OnMouseMove;
}

private void OnMouseMove(object sender, MouseEventArgs e)
{
Console.Out.Write("!");
}

如您所见,当用户按下按钮时,我的程序应该开始跟踪鼠标(即使它在窗口之外 - 这是一个关键特性!)但是我的行为非常奇怪。如果我在窗口内移动鼠标,一切都很好,! 被写入控制台。但是当我将鼠标移到窗口外时,只有 OnMouseMove 被调用一次(而且点真的在外面)。然后,如果我将鼠标移动到窗口外的任何地方,它就不再被调用。如果我将鼠标返回到窗口,一切就完美了。移开 - 1 条消息,在窗口中移动 - 确定。

有人可以帮忙吗?

最佳答案

为此你需要一个全局鼠标钩子(Hook)。我建议您先阅读一些有关钩子(Hook)的内容,例如。在 MSDN .可以在 CodeProject 中找到 C# 中的示例实现。 .

希望对您有所帮助。

关于c# - WinForms 鼠标捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com