我正在使用.net ui自动化框架来捕获用户在Outlook应用程序中查看消息时点击链接。
问题是,我无法将链接作为AutomationElement获取(就像在IE窗口的网页中一样)。我只能将文档窗格作为一个整体
有没有办法做到这一点?
答案 0 :(得分:1)
嗯,我自己得到了它
虽然我无法直接获取链接,但我可以找到该链接并从文档元素的TextPattern
获取该链接。
假设element
是直接获得焦点或点击的文档元素:
if (element.Current.LocalizedControlType == "document")
{
var point = new System.Windows.Point(Cursor.Position.X, Cursor.Position.Y);
object textPattern;
if (element.TryGetCurrentPattern(TextPattern.Pattern, out textPattern))
{
var range = ((TextPattern)textPattern).RangeFromPoint(point); //it's an empty range
var e = range.GetEnclosingElement(); //get the enclosing AutomationElement
if (e.Current.LocalizedControlType == "link" || e.Current.LocalizedControlType == "hyperlink")
{
//use e
}
}
}