在CAM中将后期绑定到XAML/Store应用程序中的Word Control

Ric*_*fen 6 c# binding ms-word

以前我已经能够在另一个应用程序中找到一个Word文档

[DllImport("Oleacc.dll")]
private static extern long AccessibleObjectFromWindow(int windowHandle, int objectID, Guid refID, ref IntPtr accessibleObject);
Run Code Online (Sandbox Code Playgroud)

并将结果对象返回到一个

Microsoft.Office.Interop.Word.Window
Run Code Online (Sandbox Code Playgroud)

这非常有效,因为我可以在Microsoft Outlook中检查有关Word的不同属性,因为MS Outlook使用Word窗口来呈现其电子邮件内容.

但是,它在XAML/Windows Store应用程序中有点棘手,因为看起来Word文档是在没有直接窗口句柄的情况下嵌入的.下面是Window的inspector.exe输出.选定的"消息"项是我的Word实例.但是,根据辅助功能检查器,具有NativeWindowHandles的树中的唯一项目是"邮件"窗口和标题窗口.

有谁知道如何将外部XAML /商店应用程序中的Word控件编组到C#对象中?

在此输入图像描述

Dir*_*mar 1

你在这里运气不好。您在 Inpect 工具中看到的确实是一个具有“_WwG”类名的元素,但您在这里处理的并不是 Word 的自动化实例。

这里首先缺少的是“_WwG”类的本机窗口句柄,此外,所使用的代码(尽管是 Microsoft Office 2016 组件)不会公开任何您可以访问的 COM 接口(至少不是熟悉Word的COM对象模型)。

根据您的要求,您也许能够找到基于 UI 自动化的解决方案 - 与 Inspect 工具使用的检查技术相同。