0

私はC#を使用してOutlookのアドインに取り組んでおり、カレンダー(自分や他の人)の可用性を確認できるようにしたいと考えています。GetSharedDefaultFolder()を使用してみましたが、会社のすべてのカレンダーを他の人が表示できる場合でも(予定の件名と時刻を確認できます)、特に許可を与えてくれた人にしか機能しませんでした。とにかくこれらの情報を入手できますか?ありがとう。

編集:私の問題はGetDefaultFolder()ではなくGetSharedDefaultFolder()にあることを強調したいと思います(つまり、他の人のカレンダーを表示します)。また、他の人のカレンダーの可用性を確認できる必要があるのは、カレンダー。

4

2 に答える 2

1

フォルダーに直接アクセスしないでください - Recipient.FreeBusy または AddressEntry.GetFreeBusy を使用してください

于 2013-03-21T14:02:17.047 に答える
1

これを試す>>

 public void GetAllCalendarItems()
        {
            Microsoft.Office.Interop.Outlook.Application oApp = null;
            Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolder = null;
            Microsoft.Office.Interop.Outlook.Items outlookCalendarItems = null;

            oApp = new Microsoft.Office.Interop.Outlook.Application();
            mapiNamespace = oApp.GetNamespace("MAPI"); ;
            CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);            outlookCalendarItems = CalendarFolder.Items;
            outlookCalendarItems.IncludeRecurrences = true;

            foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in outlookCalendarItems)
            {
                if (item.IsRecurring)
                {
                    Microsoft.Office.Interop.Outlook.RecurrencePattern rp = item.GetRecurrencePattern();
                    DateTime first = new DateTime(2008, 8, 31, item.Start.Hour, item.Start.Minute, 0);
                    DateTime last = new DateTime(2008, 10, 1);
                    Microsoft.Office.Interop.Outlook.AppointmentItem recur = null;



                    for (DateTime cur = first; cur <= last; cur = cur.AddDays(1))
                    {
                        try
                        {
                            recur = rp.GetOccurrence(cur);
                            MessageBox.Show(recur.Subject + " -> " + cur.ToLongDateString());
                        }
                        catch
                        { }
                    }
                }
                else
                {
                    MessageBox.Show(item.Subject + " -> " + item.Start.ToLongDateString());
                }
            }

        }

これに似た問題のようです>

http://www.add-in-express.com/forum/read.php?FID=5&TID=8953

したがって、このリンクの議論に従ってください。それはあなたに役立つかもしれません。

于 2013-03-21T11:15:36.767 に答える