Я использую user32.dll для получения позиции курсора и имитации щелчка мыши и т. Д. Я использую событие MouseLeave в приложении WPF. Но я хочу поймать событие отпускания мыши (или наведения курсора мыши) из всех окон (нетолько в моем приложении WPF).Возможно ли перехватить это событие, используя user32.dll или что-то еще?
Я сделал это так
[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); } })); }
Существует вызов Windows API, который позволяет получать события мыши, даже если их нет в окне:
SetCapture (HWND)
Вы можете объединить это с вызовом:
WindowFromPoint ()
чтобы узнать, в каком окне находится мышь