2012-02-09 33 views
0

好吧,我嘗試使用下面的代碼連接到從C#的Outlook日曆:連接到

using Outlook = Microsoft.Office.Interop.Outlook; 

Outlook.Application msOutlook = new Outlook.Application(); 
Outlook.NameSpace ns = msOutlook.GetNamespace("MAPI"); 
Outlook.MAPIFolder folder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 

foreach (Outlook.MAPIFolder subfolder in folder.Folders) 
{ 
    MessageBox.Show(subfolder.Name); 
} 

然而,儘管有兩個日曆,一段代碼上面沒有看到任何!

我想我可能有更多的運氣與下面的代碼:

Outlook.MAPIFolder folder = ns.GetFolderFromID("CalendarName", Type.Missing); 

但這是拋出了以下異常:

無法打開該項目。再試一次。

我猜日曆ID是不同於它的名字。

我在做什麼錯?

而且,我使用C#4在.NET 4和Outlook 2010

回答

3

是在MAPI命名空間的兩個日曆?如果通過命名空間循環查看其他人是否有日曆,該怎麼辦:

Outlook.Application msOutlook = new Outlook.Application(); 
Outlook.NameSpace session = msOutlook.Session; 
Outlook.Stores stores = session.Stores; 
foreach (Outlook.Store store in stores) 
{ 
    Outlook.MAPIFolder folder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 

    MessageBox.Show(folder.Name); 
} 
+0

發現它,非常感謝! – JMK 2012-02-09 19:29:38