我們需要爲我們的學校項目的方式來啓動一個詞實例,並跟蹤如果文件被關閉。來自word的COM api沒有這個事件,有沒有其他方法可以做到這一點?啓動Word和監控,如果文檔關閉
目前我們使用的是單詞中的COM API,但其他一切都可以。我們正在用C#編程。
我們需要爲我們的學校項目的方式來啓動一個詞實例,並跟蹤如果文件被關閉。來自word的COM api沒有這個事件,有沒有其他方法可以做到這一點?啓動Word和監控,如果文檔關閉
目前我們使用的是單詞中的COM API,但其他一切都可以。我們正在用C#編程。
如果您使用的Microsoft.Office.Interop.Word庫有一個事件,您可以訂閱過:
Microsoft.Office.Interop.Word.Application wordApp =
new Microsoft.Office.Interop.Word.Application();
wordApp.DocumentBeforeClose +=
new ApplicationEvents4_DocumentBeforeCloseEventHandler(
wordApp_DocumentBeforeClose);
...
private void wordApp_DocumentBeforeClose(Document Doc, ref bool Cancel)
{
// Do your thing
}
編輯:
要照顧文件鎖==>看看this post。如您所見,在DocumentBeforeClose中執行了一些操作:
這些事情之後照顧的文件,你可以做你的東西。鎖應該被釋放。
但是我們需要一個AfterClosed事件,我們這麼做是爲了BeforeSaved與異步while循環籤doc.Saved == true,但我們沒有發現任何這樣的BeforeClose – MBulli 2011-02-10 07:58:34
使用winword進程來檢查運行在粒子文件上的進程是否退出。
如果您不知道新啓動的實例的使用過程,或者只是簡單地勾住了進程的退出事件。
獲取所有文字處理
var info = Process.GetProcessesByName("winword").FirstOrDefault();
使用過程Process.Exited
這會幫助
Process.MainWindowTitle
掛鉤退出事件識別特定文件的過程? http://stackoverflow.com/questions/4329521/how-to-handle-word-close-event-from-winforms-application – Koen 2011-02-09 11:39:54
我們試過這種過,但我們注意到,如果已經有一個字PROC我們的新PROC合併成跑步。我們還主持預覽,所以總是有一個文字處理過程。 – MBulli 2011-02-09 11:59:29