是否可以使用UI自动化捕获任何应用程序的鼠标和键盘事件?
我试图创建一个UI自动化客户端应用程序,处理UI自动化事件,如焦点更改,菜单打开,菜单关闭等(UIA_ToolTipOpenedEventId,UIA_ToolTipClosedEventId,UIA_MenuOpenedEventId等)
当此类事件发生在任何目标应用程序上时,我的测试应用程序能够接收这些事件。但是,我无法捕获任何鼠标或键盘事件。
任何帮助将不胜感激。
参考链接:https://www.universalthread.com/ViewPageArticle.aspx?ID=199(我指的是本文中解释的方法。)
可能全局Windows挂钩很有用。请参阅本机C的MSDN参考。还有Python绑定pyHook(64位包可以在这里找到),我成功地用于本机GUI。对于.NET代码,可能WinEvents参考会更有用。
捕获事件后,您可以获取句柄或鼠标坐标,并使用UI自动化API中的ElementFromPoint或ElementFromHandle函数。
虽然这是一个古老的问题,但我不能停下来敦促在这里添加答案。
不,不可能通过UI自动化捕获任何鼠标或键盘事件。您已经获得了UI事件,我相信您最好的选择是在这些事件触发时检查鼠标位置,但这可能不适合您的场景。总结,UI自动化在这里帮不了你。