1:聊天窗口消息区,AutomationElement的Name值为“消息”;
2:此处是聊天记录内容。
C#程序中可找到外层聊天窗口的AutomationElement对象,但通过该对象找不到消息区
AutomationElement aeTop = AutomationElement.RootElement; //找到桌面根元素
AutomationElement aeForm = aeTop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "XXXX交流群")); //找到XXXX交流群的聊天窗口
AutomationElement aeMessage= aeForm .FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "消息")); //找不到消息区,aeMessage值为空
通过AutomationElement的两个静态方法(1.通过指定点找到AutomationElement;2.通过当前获得焦点找到AutomationElement)也不能获取到消息区的AutomationElement对象,结果获得了聊天窗口的AutomationElement对象
注:两个方法的指定点和当前焦点都已经指向消息区位置了。
AutomationElement focusedElement = AutomationElement.FocusedElement; //获取当前焦点AutomationElement元素
AutomationElement pointElement= AutomationElement.FromPoint(new System.Windows.Point(868, 346)); //获取指定点处AutomationElement元素
本人认为应该是TX对其做了保护限制,不知道该如何解决 。有没有做过类似开发的大神指点一下小弟。
5 个解决方案
#1
对象有此方法,就说明是可用的(不然写此方法是吃撑着不成?),只是用得不对罢了
#2
如果用IAccessable接口是可以取到qq窗口的聊天记录的
只不过只能取到整个聊天窗口的全部内容
只不过只能取到整个聊天窗口的全部内容
#3
很感兴趣,能指点下吗?
#4
激活窗体,模拟按键tab,定位到消息区,模拟按键全选,复制,搞定。
#5
马克,好感兴趣的话题,大神们多指点下。
#1
对象有此方法,就说明是可用的(不然写此方法是吃撑着不成?),只是用得不对罢了
#2
如果用IAccessable接口是可以取到qq窗口的聊天记录的
只不过只能取到整个聊天窗口的全部内容
只不过只能取到整个聊天窗口的全部内容
#3
很感兴趣,能指点下吗?
#4
激活窗体,模拟按键tab,定位到消息区,模拟按键全选,复制,搞定。
#5
马克,好感兴趣的话题,大神们多指点下。