У меня есть приложение Windows Forms, и мне нужно фиксировать движения мыши за пределами моего окна.Мой упрощенный код в моем классе окон:
private void ButtonOnClick(object sender, EventArgs e)
{
Capture = true;
MouseMove += OnMouseMove;
}
private void OnMouseMove(object sender, MouseEventArgs e)
{
Console.Out.Write("!");
}
Как вы видите, когда пользователь нажимает кнопку, моя программа должна начать отслеживать мышь (даже если она находится за пределами окна - это ключевое преимущество!)Но я получаю действительно странное поведение.Если я перемещаю мышь внутри окна, все отлично, ! записывается на консоль.Но когда я перемещаю мышь за пределы окна, только OnMouseMove вызывается только один раз (и точка действительно находится снаружи).Тогда, если я переместлю мышь куда-нибудь за пределы окна, оно больше не будет вызываться.Если я верну мышь обратно в окно, все идеально.Отойти - 1 сообщение, переместиться в окно - ОК.
Кто-нибудь может помочь?