我正在尝试编写一个C#应用程序,它将查找在MS Word中打开的文档,并使用word interop将文本写入文档末尾。这可能吗?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";
但我想用字的一个已经打开的实例,而不是创建一个新的。谢谢!
更新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试图再次打开和它的工作...奇怪。如果你知道任何有关interop和UAC的优秀资源,请在这里发布链接!
谢谢!刚刚做了,似乎得到了单词的公开实例,但它没有发送文本(文本通过我的问题的更新部分中的代码发送)。这可能是UAC问题吗? (我在一个Win 7盒子上测试) – evan 2011-04-23 21:09:51
我重新启动了UAC禁用的计算机,它开始工作。然后,我在重新启用UAC后再次重新启动计算机,然后再次尝试该程序并运行。希望我能最终达到它的底部!尽管谢谢你的回答。 – evan 2011-04-23 23:19:59
您是否有特别的理由期待与UAC相关的问题?如果您的应用程序和Word都以相同的用户身份运行,我不认为会出现这种问题。 – 2011-04-24 22:28:25