我正在編寫一個小程序,它將打開Word,Excel或Powerpoint文件,檢查這些文件而不做任何修改,然後再次退出相應的應用程序。例如。對於這個詞貌似遵循和正常文件正常工作:如果Quit()不起作用,則終止進程
s_word.Quit(false);
Marshal.ReleaseComObject(s_word);
s_word = null;
GC.Collect();
GC.WaitForPendingFinalizers();
我也有,應退出應用程序,如果它不x秒後退出的定時器。但是,如果出現任何對話等,我會遇到問題。打開文檔時出現密碼提示。我會遇到我的超時,但上面的所有命令都不會退出應用程序。 因此,我添加了一個硬進程kill方法,它只會查找所有WINWORD進程並殺死它們。雖然這可行,但我想避免這個問題。例如,下次打開失敗的文檔時,Word會詢問您是否修復它。
那麼,有沒有更好的辦法強制Office應用程序退出?
我沒有解決您的問題,但不使用辦公室interopt,你可以嘗試「Open XML SDK 2.5 Office」我不是100%確定它可以打開哪些文件,但至少它不會啓動一個新的進程,當你打開文件。 – Peter
我主要有舊的(非xml)Office文件,所以這不是一個真正的選擇。 – silent
我在處理這個事情時總是這樣做,我實現了IDisposable並覆蓋了Dispose方法。 –