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;
}
因此,该对象将在加载项运行时一直处于活动状态。
我正在研究 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;
}
因此,该对象将在加载项运行时一直处于活动状态。