2014-02-07 47 views
5

我正在处理应捕获Outlook 2013发送事件的应用程序。我已经使用C#项目来完成所需的任务。捕获Outlook 2013发送事件

特别是我用下面的代码做这个任务

public Outlook.Application OutlookApplication; 
public Outlook.Inspectors OutlookInspectors; 
public Outlook.Inspector OutlookInspector; 
public Outlook.MailItem OutlookMailItem; 
public delegate void ApplicationEvents_11_ItemSendEventHandler(object Item, ref bool Cancel); 

applicationObject = application; 
addInInstance = addInInst; 
OutlookApplication = application as Outlook.Application; 
OutlookInspectors = OutlookApplication.Inspectors; 
OutlookInspectors.NewInspector += new InspectorsEvents_NewInspectorEventHandler(OutlookInspectors_NewInspector); 
OutlookApplication.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(OutlookMailItem_Send); 

string strchkTo = OutlookMailItem.To; 
string strchk = "hello Welcome to c#"; 

OutlookInspector = (Outlook.Inspector)Inspector; 
if (Inspector.CurrentItem is Outlook.MailItem) 
{ 
    OutlookMailItem = (Outlook.MailItem)Inspector.CurrentItem; 
} 
+0

我处之泰然。 –

回答

5

以下步骤在我身边工作正常。

  1. 创建共享添加。选择Outlook作为受支持的应用程序。
  2. 在应用程序属性页面中,将Outlook设置为启动程序。
  3. 添加对Microsoft Outlook 11.0对象库的引用。
  4. 导入命名空间:

    using Outlook = Microsoft.Office.Interop.Outlook;使用System.Windows.Forms的 ;

5.Replace原始系统产生的场:

private object applicationObject; 
private object addInInstance; 

具有以下新字段:(无ItemSend事件)

public Outlook.Application OutlookApplication; 
public Outlook.Inspectors OutlookInspectors; 
public Outlook.Inspector OutlookInspector; 
public Outlook.MailItem OutlookMailItem; 

6.In的OnConnection方法,更换所有系统生成以下代码:

OutlookApplication = application as Outlook.Application; 
OutlookInspectors = OutlookApplication.Inspectors; 
OutlookInspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OutlookInspectors_NewInspector); 
     OutlookApplication.ItemSend +=new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(OutlookApplication_ItemSend); 

7.Add事件处理函数OutlookInspectors_NewInspector:

void OutlookInspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector) 
    { 
    OutlookInspector = (Outlook.Inspector)Inspector; 
    if (Inspector.CurrentItem is Outlook.MailItem) 
    { 
       OutlookMailItem = (Outlook.MailItem)Inspector.CurrentItem; 
    } 

    } 

8.Add事件处理函数OutlookApplication_ItemSend:

void OutlookApplication_ItemSend(object Item, ref bool Cancel) 
{ 
    string strchkTo = OutlookMailItem.To; 
    string strchk = "hello Welcome to c#"; 
    MessageBox.Show(strchk + "\r\n" + strchkTo); 
} 
+0

谢谢它的作品 – RameezAli

相关问题