我正在使用user32.dll获取光标位置并模拟鼠标单击等。我在WPF应用程序中使用MouseLeave事件。但是我想从所有窗口捕获鼠标离开(或鼠标悬停)事件(不是仅在我的WPF应用中)。是否可以使用user32.dll或其他方式捕获此事件?
答案 0 :(得分:1)
我是这样做的
[DllImport("user32.dll")]
static extern bool GetCursorPos(out Point lpPoint);
void StartGettingCursorPos()
{
Task.Run(new Action(() =>
{
while (true)
{
GetCursorPos(out Point point);
Console.WriteLine($"X:{point.X}; Y:{point.Y}");
Thread.Sleep(20);
}
}));
}
答案 1 :(得分:0)
有一个Windows API调用,即使它们不在窗口中也可以获取鼠标事件:
SetCapture(hWnd)
您可以将其与以下调用结合使用:
WindowFromPoint()
获取鼠标悬停在哪个窗口上