none
mehrere Outloook Kalender nacheinander auslesen RRS feed

  • Frage

  • Hallo zusammen,

    Ich lese aus der Registry die Outlook Profilnamen die lokal eingerichtet sind.
    Nun möchte ich die Profile durchlaufen und die Kalendereinträge lesen.

    Mein Problem ist nun das wenn ich z.B. 3 Profile eingerichtet habe ich 3 mal die Kalendereinträge vom 1. Profil bekomme.
    Mir scheint es so, das nach dem öffnen des 1. Profiles dieses nicht mehr korrekt beendet wird und daher dieses bei jedem weiteren schleifendurchlauf gelesn wird.

    Hier mein Code:

    Microsoft.Office.Interop.Outlook.Application Oapp = null;
      Microsoft.Office.Interop.Outlook.NameSpace Ons = null;
      Microsoft.Office.Interop.Outlook.MAPIFolder fCal = null;
      Microsoft.Office.Interop.Outlook.Items eintraege = null;
    
      foreach (string profil in this.getMAPIProfile()) //
      {
      Oapp = new Microsoft.Office.Interop.Outlook.Application();
      Ons = Oapp.GetNamespace("MAPI");
    
      Ons.Logon(profil, Type.Missing, false, true);
    
    fCal = Ons.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
    
    eintraege = fCal.Items;
    
      foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in eintraege)
      {
      if (item != null && item.Subject != null)
       Console.WriteLine(item.Start.ToString() + " - " + item.Subject);
      
      }
    //alle möglichen versuche Outlook bzw. das aktuelle Profil zu beenden

    Ons.Logoff();
     Oapp.Session.Logoff();
     (Oapp as Microsoft.Office.Interop.Outlook.ApplicationClass).Quit();

     System.Runtime.InteropServices.Marshal.ReleaseComObject(Ons); System.Runtime.InteropServices.Marshal.ReleaseComObject(fCal); System.Runtime.InteropServices.Marshal.ReleaseComObject(Oapp); eintraege = null;<br/> fCal = null;<br/> Ons = null;<br/> Oapp = null;<br/> <br/> GC.Collect();<br/> GC.WaitForPendingFinalizers();<br/><br/><br/> }

    Die Methode this.GetMAPIProfile() gibt ein string Array zurück mit den eingerichteten Outlook Profilen.
    Egal welchen Profilnamen ich bei der Methode Ons.Logon(...) angebe, es wird immer das Profil gelesen welches ich als erstes auslese.

    Ich hoffe jemand kann mir einen Tip geben wie ich das Profil richtig beenden muß.

    Danke für eure Hilfe

     



    Dienstag, 22. März 2011 16:11