我的目标是以某种方式能够读取 Outlook .msg 文件中的书签,然后用不同的文本替换它们。我想用 C# 做到这一点。
我知道如何访问正文和更改文本,但想知道是否有一种方法可以直接访问所有书签的列表及其位置,以便我可以轻松替换它们,而不是浏览整个正文,拆分它起来等等等等...
编辑:这是一个书签窗口的样子,从这个窗口可以分配书签,但应该可以通过 c# 获得这个列表。
任何相关信息表示赞赏。提前致谢。
由于 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
}
}
}
};