2010-12-03 66 views
0

我有一個WinForms應用程序,我提供版本鏈接Word文檔。當用戶點擊鏈接時,它將打開Word文檔。我的要求是,他們打開Word文檔,執行更改,保存並關閉文檔,以檢測已做出的更改並將帶有新版本的副本上載到數據庫。的WinForms - 處理Word文檔關閉事件

我當前已完成了以下:

ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true }; 
Process process = Process.Start(psi); 
process.EnableRaisingEvents = true; 
process.Exited += process_Exited; 

這似乎像它應該然而,工作得很好,我遇到了一些問題:

  1. 用戶只需關閉該實際文檔而不關閉Word和Exited事件永遠不會觸發。
  2. 如果Word在點擊鏈接打開文檔時已經打開,則Process.Start方法返回null。
  3. 我的用戶可以關閉WinForms應用程序,並且Word文檔可能仍處於打開狀態。這可能會造成問題,因爲用戶可能會在關閉應用程序後進行更改,並且更改不會持久保存到數據庫。

是否有我實現我想要的結果的任何其他的選擇嗎?有沒有人做過類似的事情,可以提供任何方向來解決我的問題?

感謝您的任何援助。

+0

我想你不妨試試的話COM庫,我不記得,如果他們有這樣的活動,截至目前,但它可能是值得檢查出來的。 – Machinarius 2010-12-03 14:05:22

回答

0

你可以寫一個.NET插件的Word。 這應該會讓你更好地控制Word中的事件。

0

爲應對「,如果他們收我的應用程序,他們關閉之前文檔問題「,

如果用戶試圖關閉該文件時打開該文檔,則會關閉該應用程序:

理念1: 1.隱藏winform應用程序 2.當文件被關閉時,然後退出winform應用程序。

理念2: 1.展會,指出他們必須先關閉Word文檔,以關閉應用程序的消息。

我必須多瞭解一下該軟件的目的是爲了創造一個更美好soultion