C# Word Interop应用程序将文本写入打开文档的末尾

C# Word Interop应用程序将文本写入打开文档的末尾,c#,interop,ms-word,C#,Interop,Ms Word,我正在尝试编写一个C#应用程序,它将在MS Word中找到一个打开的文档,并使用Word interop在文档末尾写入一些文本。这可能吗 我知道使用.NET Framework中内置的Process和Sendkeys可以解决这个问题,但我想使用Word Interop解决这个问题,这样我就可以添加更多功能(Sendkeys也只在某些特殊情况下才能解决这个问题) 谢谢 更新: 我得到了以下部分解决方案: Application wordApp = new Application();

我正在尝试编写一个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打开的情况下再次尝试,它就工作了。。。奇怪。不过,如果您知道任何关于interop和UAC的好资源,请在这里发布链接

肯定是埃文。Microsoft Office互操作程序集允许您执行C#中的任何操作!SendKeys()是一个问题


我想我应该详细说明SendKeys():它甚至不再可靠地工作,因为它是一个主要的黑客工具。MS Office互操作程序集允许您对每个Office组件执行大量操作。我在MS Excel中广泛使用了它们,有些在Word中使用过,用户可以通过编程完成任何事情。

您是否看过使用
Marshal.GetActiveObject(“Word.Application”)
来获取正在运行的应用程序,与其创建一个新的,不如在下面试试。这里我举一个图像插入的例子

 WordC.Application wordApp = new WordC.Application();
                //  create Word document object
                WordC.Document aDoc = null;
                object readOnly = false;
                 object isVisible = false;
                 wordApp.Visible = false;
               //  wordApp.DisplayAlerts = false;
//docFileName is the filename with complete path. ex c://test.doc

                 aDoc = wordApp.Documents.Open(docFileName, Type.Missing, ref readOnly, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, ref isVisible, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
aDoc.Activate();
aDoc.InlineShapes.AddPicture(imgFilename, Type.Missing, Type.Missing, Type.Missing);

                aDoc.Save();
                aDoc.Close(Type.Missing, Type.Missing, Type.Missing);
                wordApp.Quit(Type.Missing, Type.Missing, Type.Missing);

谢谢你的帮助!通过跟踪你提供的链接,我已经有所进展。现在我只需要知道如何连接到活动的word窗口(请参阅我的q更新)。你知道我能做到吗,或者你知道我错过的一个在线例子吗?再次感谢!谢谢刚刚做了,这似乎得到了word的开放实例,但它没有发送文本(文本是通过我问题更新部分的代码发送的)。这可能是UAC的问题吗?(我在Win7上测试)我在禁用UAC的情况下重新启动了计算机,它开始工作。然后我重新启动计算机,在重新启用UAC后,再次尝试该程序,它成功了。希望我最终能弄清真相!谢谢你的回答。你有什么特别的理由期待UAC相关的问题吗?如果你的应用程序和Word都以同一个用户的身份运行,我认为不会有这种问题。