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