我正在嘗試編寫一個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