2015-09-08 110 views
0

我正在處理Outlook插件2010. Outlook添加事件無法在調用上下文菜單附件項目後生效。 我在Outlook插件中使用FMUtils.KeyboardHook創建了一個鍵盤快捷鍵。 它工作正常,但當我點擊上下文菜單附件中的自定義項目時,它會打開我各自的窗體窗體,但在我的Outlook加載事件不起作用後。 未觸發鍵盤快捷鍵事件。窗體,Outlook插件

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
var KeyboardHook = new Hook("Global Action Hook"); 
KeyboardHook.KeyDownEvent += KeyDown; 
} 

     public void KeyDown(KeyboardHookEventArgs e) 
    { 
      if (e.isCtrlPressed && e.isAltPressed && e.Key == Keys.D) 
      { 
      //process code 
      } 
    } 

請幫我解決這個問題。

回答

0

您需要在全局範圍內定義事件源對象,以防止其被垃圾收集器滑動。例如:

Hook KeyboardHook = null; 

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    KeyboardHook = new Hook("Global Action Hook"); 
    KeyboardHook.KeyDownEvent += KeyDown; 
} 

因此,當加載項運行時,對象始終處於活動狀態。

+0

非常感謝Eugene Astafiev,它對我很有幫助 – Ariel