2012-10-18 51 views
0

我有Windows應用程序,使用戶登錄。登錄後我希望加載項被加載。當用戶退出特定的Word實例時(當登錄應用程序運行時,只有一個單詞實例可以存在),那麼加載項也會被卸載。我試圖通過如何加載MS Word 2010加載項加載後登錄和卸載時退出

addin.Connect = false;//Application.COMAddins. Connect 

它設置LoadBehaviour(COM加載項列表),以2 做到這一點,並在加載時我將其設置爲3

它的工作,但MSWORD顯示這麼多的錯誤信息而退出,有時會禁用我的加載項。 是否有任何其他方式動態加載和卸載加載項?

+0

我不清楚你的加載項的生命週期,但我認爲最好是有一個微小的附加核心。該核心一直裝載Word應用程序並在用戶登錄後加載所有員工 –

+0

實際上,我的問題是如何動態加載和卸載加載項而沒有任何錯誤消息 – Annie

+0

在Word應用程序啓動期間加載的所有加載項是固體。所以我不能看到任何可能的方法來實現你的目標,除了早期的描述。由於代碼錯誤,您可能發生錯誤消息。嘗試調試你的代碼,把'try' - 'catch'塊放在你的代碼中來攔截異常,但要小心,攔截不是一個完整的解決方案。你應該對每個捕獲到的異常做出正確的反應 –

回答

1

在加載項的StartUp事件中,我檢查了登錄表單的屬性。如果它被設置,則執行下面的行

addin.Connect = true; 

,並加入在其App_Quit方法

void App_Quit() 
    { 
     addin.Connect = false; 
    } 

一個退出事件處理程序

((Microsoft.Office.Interop.Word.ApplicationEvents4_Event)app).Quit += new Microsoft.Office.Interop.Word.ApplicationEvents4_QuitEventHandler(App_Quit); 

現在,當我退出字;我的加載項被卸載。最後它開始工作:-)