0

私は一緒に働いています

  • Windows 10 プロフェッショナル 64 ビット (21H1)
  • MS オフィス 2013
  • VS 2019 (v16.11.3)

サブスクライブされた webcal - カレンダーを C# で読み込もうとしています。が実行されるたびOpenSharedFolder(webCalString)に、「Web サーバーに接続しています...」という小さなウィンドウでプロセスが開始され、次に Microsoft Outlook.exe ユーザー インターフェイスが開き、このカレンダーの新しいインスタンスが「マイ カレンダー」の下に作成されます。C# プログラムを開始する前に Outlook を開いている場合、この問題は発生しません。

私のコードは単純Microsoft.Office.Interop.Outlookです。への参照を追加しましたMS Office 15.0 Object library 2.7 (15.0.5363.1000)

using System;
using System.Windows.Forms;
using Outlook = Microsoft.Office.Interop.Outlook;

…

string webCalString = “webcal://koenigstein.mein-abfallkalender.de/ical.ics?sid=26035&cd=inline&ft=noalarm&fp=next_1000&wids=657,919,661,658,656,659,660,662,663&uid=46006&pwid=3ade10b890&cid=94”;

// initially set to NULL
Microsoft.Office.Interop.Outlook.Application oApp = null;
Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
Microsoft.Office.Interop.Outlook.Folder CalendarFolderAbo = null; 

oApp = new Microsoft.Office.Interop.Outlook.Application();

mapiNamespace = oApp.GetNamespace(“MAPI”); ;

// these 2 lines are necessary, otherwise OpenSharedFolder(“webcal”) does not work (why???)
Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolder = null;
CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);

**// the following line opens outlook.exe, shows the User Interface of MS- Outlook, and always produces a new instance of this subscribed calendar under “My Calendars”**
CalendarFolderAbo = mapiNamespace.OpenSharedFolder(webCalString) as Outlook.Folder;
4

1 に答える 1