在C#中分配Outlook任务

时间:2013-09-17 22:06:21

标签: c# .net outlook

我已经尝试了两种方法来实现能够创建和发送Outlook任务的结束,这两种错误都以我自己无法解决的方式出错。

我在使用Microsoft Outlook 14.0对象库和MSDN中的操作方法创建Outlook任务时遇到问题:http://msdn.microsoft.com/en-us/library/office/ff184639.aspx

此代码的第一行创建一个Outlook.TaskItem:

Outlook.TaskItem task = Application.CreateItem(
    Outlook.OlItemType.olTaskItem) as Outlook.TaskItem;

“Application.CreateItem”会抛出错误:

    'System.Windows.Forms.Application' does not contain a definition for 'CreateItem'

而不是System.Window.Forms.Application,我认为它正在寻找的类是在Outlook.ApplicationClass中,但这也不起作用。

因此,第二次尝试用代码替换上面的代码是为了创建TaskItem:

Outlook.ApplicationClass app = new Outlook.ApplicationClass();
Outlook.TaskItem tsk = (Outlook.TaskItem) 
         app.CreateItem(Outlook.OlItemType.olTaskItem);

我得到的错误是:

    Interop type 'Microsoft.Office.Interop.Outlook.ApplicationClass' cannot be embedded. Use the applicable interface instead.

我还在学习C#,我不知道如何解决这些错误。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

如果outlook已在运行,请在您的班级中添加以下方法:

   public static Microsoft.Office.Interop.Outlook.Application GetActiveOutlookApplication()
   {
      return ( Microsoft.Office.Interop.Outlook.Application )System.Runtime.InteropServices.Marshal.GetActiveObject( "Outlook.Application" );
   }

...然后使用它

Outlook.Application app = GetActiveOutlookApplication();
Outlook.TaskItem tsk = (Outlook.TaskItem)  app.CreateItem(Outlook.OlItemType.olTaskItem);

...对于一个新的Outlook实例,您可以尝试(不确定这是否有效)

 Outlook.Application app = new Outlook.Application();
 Outlook.TaskItem tsk = ( Outlook.TaskItem )app.CreateItem( Outlook.OlItemType.olTaskItem );