2009-09-12 32 views
0

我在窗體上有一個按鈕和一個文本框。當我點擊按鈕時,Microsoft Word就會啓動。當用戶關閉Word時,我想要獲取用戶保存其作品的文件名以顯示在文本框中。如何在用戶關閉Word時獲取文件名?

我使用下面的代碼button_click:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\Microsoft Office\Office12\winword.exe"); 
psi.RedirectStandardOutput = true; 
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
psi.UseShellExecute = false; 

System.Diagnostics.Process listFiles; 
listFiles = System.Diagnostics.Process.Start(psi); 
System.IO.StreamReader myOutput = listFiles.StandardOutput; 

listFiles.WaitForExit(); 

if (listFiles.HasExited) 
{ 
    System.IO.FileInfo ff = new System.IO.FileInfo(myOutput.ToString()); 
    string output = myOutput.ReadToEnd(); 
    this.processResults.Text = output; 
} 

回答

2

我不相信這是可能通過命令行。另外,要意識到,如果用戶打開另一個文檔,代碼將無法完成,因爲它將一直等到所有文檔都關閉爲止(該過程不會在此之前結束)。

也就是說,您應該可以使用Word/Office Interop庫,並聽取DocumentBeforeSave和/或DocumentBeforeClose事件。這應該讓您從文檔本身獲取信息,因爲它正被保存/關閉。

2

我不認爲你可以用你現有的代碼做到這一點。 ProcessStartInfo是非常通用的,並且不知道單詞。

我想你會想用Visual Studio Tools for Office(VSTO)來啓動word。通過這種方式,您可以參考單詞應用程序和文檔,並可以獲取文檔名稱。

這篇文章應該讓你開始http://www.c-sharpcorner.com/UploadFile/mgold/WordFromDotNet11082005235506PM/WordFromDotNet.aspx示例代碼有一個叫做aDoc的對象。然後在保存之後,您可以檢查aDoc.FullName以獲取路徑。

1

我不確定這是否可能,因爲保存的文件的名稱是內部信息,不公開其他應用程序。 而不是你的具體情況,因爲你正在使用微軟Word可以使用Word互操作在應用程序啓動Word應用程序,然後處理其事件

0

創建所需位置的空白Word文檔,然後獲取Word將加載那?

相關問題