Window 表单,Outlook 加载项

Window Form, Outlook Addin

我正在研究 Outlook 插件 2010。 Outlook 添加事件在调用上下文菜单附件项后不起作用。 我在 outlook 插件中使用 FMUtils.KeyboardHook 创建了一个键盘快捷键。 它工作正常,但是当我单击上下文菜单附件中的自定义项时,它会打开我各自的 windows 表单,但是在我的 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
          }
     }

请帮我解决这个问题。

您需要在全局范围内定义事件源对象,以防止它被垃圾收集器刷走。例如:

Hook KeyboardHook = null;

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

因此,该对象将在加载项运行时一直处于活动状态。