VSTO Outlook 2013 加载项退出
VSTO Outlook 2013 Addin Quit
我有一个 VSTO 插件,它显示一个对话框,其中包含“是”、“否”和“取消”按钮。我希望表格随时关闭,取消或单击 X。我还希望应用程序在关闭表单时退出。这是我的代码:
var frm = new Form1();
DialogResult res = frm.ShowDialog();
if (client != null)
{
if (res == DialogResult.Yes)
{
path = DRIVE_LETTER + ":/Clients/" + client + "/Correspondence/";
}
else if (res == DialogResult.No)
{
path = DRIVE_LETTER + ":/Clients Project History/" + client + "/Correspondence/";
}
else if (res == DialogResult.Cancel)
{
frm.Close();
}
else
{
frm.Close();
}
然后是我的表单关闭事件处理程序:
private void Form1_Closing(object sender, CancelEventArgs e)
{
Application.Exit();
}
但是好像不行。 Microsoft.Office.Interop.Outlook.Application 没有退出方法。我怎样才能在 VSTO 中做同样的事情?当这些表单为 canceled/closed.
时,我希望我的应用程序完全停止执行
谢谢
编辑:任何人都可以提供退出插件的示例。或者在满足特定条件时停止所有执行,例如 Pyton 的 sys.exit()。我不想关闭 outlook,只希望插件停止执行。连卸都不卸,就停
如果您需要关闭 Outlook,您可以使用应用程序 class 的 Quit 方法。关联的 Outlook 会话将完全关闭;用户将从消息传递系统注销,对尚未保存的项目所做的任何更改都将被丢弃。
但是如果您需要关闭加载项(而不是主机应用程序),您可以:
- 禁用所有事件处理程序和 UI 控件。要完成工作,您可以检查全局布尔变量,它可以指示加载项的状态(允许 运行 或不允许)。
ComAddIn class 的 Connect 属性 允许设置指定 COMAddIn 对象的连接状态。如果加载项处于活动状态,则 属性 returns 为真;如果加载项处于非活动状态,它 returns false。已注册并连接一个活动的插件;已注册非活动加载项但当前未连接。
Outlook.Application outlook = new Outlook.Application();
if (outlook.Application.COMAddIns.Item("OutlookAddIn").Connect)
{
outlook.Application.COMAddIns.Item("OutlookAddIn").Connect = false;
}
else
{
outlook.Application.COMAddIns.Item("OutlookAddIn").Connect = true;
}
我有一个 VSTO 插件,它显示一个对话框,其中包含“是”、“否”和“取消”按钮。我希望表格随时关闭,取消或单击 X。我还希望应用程序在关闭表单时退出。这是我的代码:
var frm = new Form1();
DialogResult res = frm.ShowDialog();
if (client != null)
{
if (res == DialogResult.Yes)
{
path = DRIVE_LETTER + ":/Clients/" + client + "/Correspondence/";
}
else if (res == DialogResult.No)
{
path = DRIVE_LETTER + ":/Clients Project History/" + client + "/Correspondence/";
}
else if (res == DialogResult.Cancel)
{
frm.Close();
}
else
{
frm.Close();
}
然后是我的表单关闭事件处理程序:
private void Form1_Closing(object sender, CancelEventArgs e)
{
Application.Exit();
}
但是好像不行。 Microsoft.Office.Interop.Outlook.Application 没有退出方法。我怎样才能在 VSTO 中做同样的事情?当这些表单为 canceled/closed.
时,我希望我的应用程序完全停止执行谢谢
编辑:任何人都可以提供退出插件的示例。或者在满足特定条件时停止所有执行,例如 Pyton 的 sys.exit()。我不想关闭 outlook,只希望插件停止执行。连卸都不卸,就停
如果您需要关闭 Outlook,您可以使用应用程序 class 的 Quit 方法。关联的 Outlook 会话将完全关闭;用户将从消息传递系统注销,对尚未保存的项目所做的任何更改都将被丢弃。
但是如果您需要关闭加载项(而不是主机应用程序),您可以:
- 禁用所有事件处理程序和 UI 控件。要完成工作,您可以检查全局布尔变量,它可以指示加载项的状态(允许 运行 或不允许)。
ComAddIn class 的 Connect 属性 允许设置指定 COMAddIn 对象的连接状态。如果加载项处于活动状态,则 属性 returns 为真;如果加载项处于非活动状态,它 returns false。已注册并连接一个活动的插件;已注册非活动加载项但当前未连接。
Outlook.Application outlook = new Outlook.Application(); if (outlook.Application.COMAddIns.Item("OutlookAddIn").Connect) { outlook.Application.COMAddIns.Item("OutlookAddIn").Connect = false; } else { outlook.Application.COMAddIns.Item("OutlookAddIn").Connect = true; }