2014-07-08 126 views
0

當我運行這段代碼它打開文件只讀模式,但我想打開我的文檔文件編輯mode.I已經只讀模式的組假。這是我使用的代碼: -如何打開在C#在編輯模式下的Word文檔文件(.DOC)/ WPF

Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); 
Microsoft.Office.Interop.Word.Document document = new Microsoft.Office.Interop.Word.Document(); 

try 
{ 
    //Set status for word application is to be visible or not. 
    //Create a missing variable for missing value 
    object readOnly = false; 
    object missing = System.Reflection.Missing.Value; 
    object isVisible = true; 

    document = winword.Documents.Open(pathToFile, ReadOnly: false, Visible: true); 
    document.Activate(); 

    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(winword); 

    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(document); 
} 
catch (Exception ex) 
{ 
    // WB.Close(false, Type.Missing, Type.Missing); 
    throw; 
} 
+0

我已經試過你的代碼,它揭開了讀寫模式下,所有我的樣本文件。我必須做的唯一改變是'winword.Visible = true;'。你是否只在某些* .doc文件出現問題,或者是以只讀模式打開的所有** * .doc文件(甚至是簡單的文件)?您使用的是哪個版本的Word? –

回答

0

我的猜測是你不能這樣做。部分提供了只讀模式作爲安全措施,以阻止某些宏在Word中執行。因此,提供SDK覆蓋它對最終用戶是一種風險。您可以通過直接使用文件名參數運行exe來繞過它,因爲那樣會像雙擊圖標的人一樣,但我不熟悉WPF中或不支持哪些庫。在良好的ol'派控制檯或Windows窗體,你會看

System.Diagnostics.Process.Start([the path of Word.exe], pathToFile); 

,但你必須要小心尋找路徑Word.exe,因爲這可能變化基於版本字和給出了什麼安裝說明。可以想象,那些COM對象會以某種方式暴露路徑,因爲他們很有可能需要知道它,但是我又不熟悉它們。

相關問題