【问题标题】:How can I catch mouse leave event using user32.dll如何使用 user32.dll 捕捉鼠标离开事件
【发布时间】:2019-09-01 10:16:17
【问题描述】:

我正在使用 user32.dll 获取光标位置和模拟鼠标点击等。我在 WPF 应用程序中使用 MouseLeave 事件。但我想从所有窗口(不是仅在我的 WPF 应用程序中)。是否可以使用 user32.dll 或其他东西来捕捉这个事件?

【问题讨论】:

    标签: c# mouseevent user32


    【解决方案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);
                }
            }));
        }
    

    【讨论】:

      【解决方案2】:

      有一个 Windows API 调用允许获取鼠标事件,即使它们不在窗口中:

      SetCapture(hWnd)

      您可以将其与调用相结合:

      WindowFromPoint()

      获取鼠标在哪个窗口上

      【讨论】:

      • 你能举个例子吗?
      猜你喜欢
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 2013-05-18
      • 2012-02-03
      • 1970-01-01
      相关资源
      最近更新 更多