Получить MouseCursor-Movement / Position при перемещении физической мыши, когда курсор находится на ScreenBoundary - PullRequest
0 голосов
/ 11 апреля 2020

Сообщество

для моего текущего проекта (C#, WPF, VS 16.5.3, W10 1909), мне нужно распознать движение мыши, даже если курсор находится на границе экрана (т.е. вверху справа), и пользователь продолжает двигать мышь. Когда я запрашиваю позицию по

Mouse.GetPosition(Application.Current.MainWindow)

, я получаю позицию на экране, и значения перестают изменяться, если я продолжаю двигать физическую мышь, когда курсор находится на границе экрана. То, что я хотел бы, был "виртуальный бесконечный экран", из которого я мог бы получить координаты курсора мыши (другие идеи также приветствуются). Как мне этого добиться?

Thx

1 Ответ

1 голос
/ 11 апреля 2020
    using System;
    using System.Runtime.InteropServices;

    namespace StackOverFlow
    {
        public class Program
        {
            [DllImport("user32.dll")]
            static extern bool GetCursorPos(out POINT lpPoint);

            public struct POINT
            {
                public int X;
                public int Y;
            }

            static int _x, _y;

            static void ShowMousePosition()
            {
                POINT point;
                if (GetCursorPos(out point) && point.X != _x && point.Y != _y)
                {
                    Console.Clear();
                    Console.WriteLine("({0},{1})", point.X, point.Y);
                    _x = point.X;
                    _y = point.Y;
                }
            }

            static void Main()
            {
                while (true)
                {
                    ShowMousePosition();
                }
            }
        }
    }
...