2

我的目标是以某种方式能够读取 Outlook .msg 文件中的书签,然后用不同的文本替换它们。我想用 C# 做到这一点。

我知道如何访问正文和更改文本,但想知道是否有一种方法可以直接访问所有书签的列表及其位置,以便我可以轻松替换它们,而不是浏览整个正文,拆分它起来等等等等...

编辑:这是一个书签窗口的样子,从这个窗口可以分配书签,但应该可以通过 c# 获得这个列表。

在此处输入图像描述

任何相关信息表示赞赏。提前致谢。

4

1 回答 1

0

由于 Outlook最常使用 Word 作为其正文编辑器- 您需要添加对Microsoft.Office.Interop.Word.dllWordEditor的项目引用,然后在活动期间访问 Outlook Inspector Inspector.Activate。一旦您可以访问-加载并访问/修改它们的值Word.Document是微不足道的。Bookmarks

Outlook.Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
((Outlook.InspectorEvents_10_Event)inspector).Activate += () =>
{   // validation to ensure we are using Word Editor
    if (inspector.EditorType == Outlook.OlEditorType.olEditorWord && inspector.IsWordMail())
    {
        Word.Document wordDoc = inspector.WordEditor as Word.Document;
        if (wordDoc != null)
        {
            var bookmarks = wordDoc.Bookmarks;
            foreach (Word.Bookmark item in bookmarks)
            {
                string name = item.Name; // bookmark name
                Word.Range bookmarkRange = item.Range; // bookmark range
                string bookmarkText = bookmarkRange.Text; // bookmark text
                item.Select(); // triggers bookmark selection
            }
        }
    }
};
于 2013-05-15T14:22:52.113 回答