将鼠标事件发送到非活动和隐藏的窗口/WPF 窗体
Posted
技术标签:
【中文标题】将鼠标事件发送到非活动和隐藏的窗口/WPF 窗体【英文标题】:Send mouse events to inactive and hidden windows/WPF forms 【发布时间】:2013-01-26 07:41:35 【问题描述】:我正在开发一个需要在 Win32/WPF 窗口上生成鼠标事件的应用程序,该事件可能会被最小化或隐藏在桌面上的视图中。
我已经尝试过 user32.dll APIs SendInput、SendMessage、PostMessage 等。这些仅当窗口在桌面上可见时才有效。您知道任何适用于隐藏/非活动窗口的方法吗?
我也尝试过 .NET 的 UI 自动化库。在这种情况下,窗口会被带到前面,否则我无法获得控件的可点击点。
有什么想法可以继续吗?如果我可以继续?
【问题讨论】:
2 天,还在继续……没有 cmets? 【参考方案1】:我不知道您是否仍然对答案感兴趣(我只是偶然发现了这个问题,纯粹是因为运气不好),但是您是否尝试过制作全局 windows 挂钩?
我不知道如何正确实施一个;但我知道你应该能够向 Windows 添加一个全局窗口挂钩,以监听你想要的任何事件(应该包括鼠标和键盘事件!)
祝你好运……
【讨论】:
谢谢@Serge。我最终确实解决了这个问题。窗口窗体 (WPF) 现在是我的应用程序的 TCP 客户端,它发送鼠标坐标。我找到控件并使用 Dispatcher.BeginInvoke(eventHandler, eventArgs)。以上是关于将鼠标事件发送到非活动和隐藏的窗口/WPF 窗体的主要内容,如果未能解决你的问题,请参考以下文章