【发布时间】:2011-04-23 19:49:51
【问题描述】:
我正在尝试编写一个 C# 应用程序,该应用程序将查找在 MS Word 中打开的文档,并使用 word interop 将一些文本写入文档末尾。这可能吗?
我知道可以使用 .NET Framework 中内置的 Process 和 Sendkeys 来解决这个问题,但我想使用 Word Interop 来解决这个问题,这样我就可以在以后添加更多功能(sendkeys 也真的可以只在某些特殊情况下解决问题。)
谢谢!
更新:
我得到了以下部分解决方案:
Application wordApp = new Application();
wordApp.Visible = true;
wordApp.Documents.Add();
Range rng = wordApp.ActiveDocument.Range(0, 0);
rng.Text = "New Text";
但我想使用一个已经打开的 word 实例而不是创建一个新实例。谢谢!
更新 2:
我很接近了!以下代码在 UAC 关闭的情况下工作
Application wordApp = (Word.Application)Marshal.GetActiveObject("Word.Application");
Range rng = wordApp.ActiveDocument.Range(0, 0);
rng.Text = "New Text";
但我不确定如何让它在启用 UAC 的情况下工作。 UAC 不会导致任何错误或异常,它只是不会将文本写入打开的文档。
到目前为止感谢大家的帮助,现在就在眼前:)!
更新 3:
刚刚在打开 UAC 的情况下再次尝试它,它工作......奇怪。不过,如果您总体上知道有关互操作和 UAC 的任何好的资源,请在此处发布链接!
【问题讨论】: