簡體   English   中英

在機器中分離 Microsoft.Office.Interop.Word 實例和 Word 應用程序

[英]Separate Microsoft.Office.Interop.Word instance and Word app in machine

在我的應用程序中,我想使用 microsoft word

Microsoft.Office.Interop.Word

Microsoft.Office.Interop.Word.Application _wordApplication
= new Microsoft.Office.Interop.Word.Application();
this._wordApplication.Documents.Add();

object _readOnly;
    object _addToRecentFiles;
    object _confirmConversion;
    object _trueValue;
    object _falseValue;
    object _visible;
    object _nullObj;
object fileName = @"C:/FileName.doc";

var doc = _wordApplication.Documents.Open(ref fileName, ref _confirmConversion, ref _readOnly, ref _addToRecentFiles,
                    _oMissing, _oMissing, _oMissing, _oMissing, _oMissing, _oMissing, _oMissing, _visible, _oMissing,
                    _oMissing, _oMissing, _oMissing);

我想在我的機器上的 word 應用程序和我的解決方案中的 word 之間分開,因為如果我使用以下步驟修改機器上的 word 應用程序

查看 > 閱讀模式

並關閉單詞應用程序然后我在我的解決方案中打開單詞 >> 該單詞將在

閱讀模式不是打印布局模式

所以我的問題是如何在我的解決方案中分離 Word 應用程序和 word 實例我希望我的解決方案中的任何更改都不會影響我機器中的 microsoft office word,反之亦然

由於 Word 在注冊表中存儲許多設置值(以及Normal.dotm模板中的其他設置值),在單個用戶配置文件項下,無法選擇或更改 Word 應用程序退出時保存的內容,無論設置是更改是由用戶或代碼進行的。 此行為是設計使然,不能以不同方式進行配置。

保持完全獨立的環境的唯一方法是在不同的用戶配置文件下運行“互操作”版本。

除此之外,為了確保“互操作”環境以與最終用戶環境不同的設置運行,“互操作”代碼在啟動時需要注意每個關注的設置,將這些設置更改為自身所需的設置,並且,當它結束時,重置為“互操作”開始時保存的設置。

有可能在“安全模式”下啟動 Word 進程,這將使用安裝默認值運行 Word,但這仍然意味着在實例啟動時創建設置。 而且,根據代碼的作用,在安全模式下工作可能存在其他限制/問題。

理論上,另一種方法是保存設置注冊表項 - 我記得有多個鍵存儲設置,用具有所需設置的鍵替換它們,啟動“互操作”實例,然后在“互操作”結束。 這本質上是第一種方法所做的,並且可能會在沒有管理員權限的最終用戶環境中遇到問題,所以我只是為了完整起見才提到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM