使用.net ui自动化框架来捕获Outlook应用程序中链接的用户点击

时间:2015-08-04 09:53:05

标签: microsoft-ui-automation

我正在使用.net ui自动化框架来捕获用户在Outlook应用程序中查看消息时点击链接。
问题是,我无法将链接作为AutomationElement获取(就像在IE窗口的网页中一样)。我只能将文档窗格作为一个整体 有没有办法做到这一点?

1 个答案:

答案 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
        }
    }
}