2015-09-08 112 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