Очень часто бывает полезно организовать взаимодействие вашей программы с Microsoft Office (а также воспользоваться массой встроенных в него классов). При помощи сборок, поставляемых с продуктами Office, вы можете выполнять самые разнообразные операции, в том числе те, к которым пользователь, работавший ранее с программами этого пакета, уже привык. Рассмотрим взаимодействие с Outlook в контексте приложения .NET. Для реализации данной задачи используется объектная библиотека «Microsoft Word 14.0 Object Library».
Создайте проект «Windows Form» в «Microsoft Visual Studio», для этого запустите среду разработки и перейдите в меню Файл->Создать...->Проект. Выберете версию .Net Fraemwork и введите имя проекта.
Перейдите в «Обозреватель решений» и найдите группу «References» которая содержит все ссылки на внешние компоненты в проекте. Сделайте клик правой клавишей мыши по данной группе и выберете из появившегося контекстного меню, пункт «Добавить ссылку…».
У вас откроется окно «Менеджер ссылок – (имя вашего проекта)», в левой части данного окна вам будет предложено выбрать одну из категорий. Visual Studio предоставляет четыре группы для выбора.
«Сборки» — список всех компонентов платформы .NET Framework, ссылки на которые можно добавить.
«Решение» — список всех повторно используемых компонентов, созданных в локальных проектах.
«COM» — список всех COM-компонентов, ссылки на которые можно добавить.
«Обзор» — позволяет осуществлять поиск компонента в файловой системе.
Выберете группу «Сборки» и ее подгруппу «Расширения». В центральной части окна вам будет предложен список доступных библиотек для подключения к вашему проекту. Найдите в списке библиотеку «Microsoft.Office.Interop.Outlook» и поставьте галочку рядом с именем данной библиотеки. В нижней части окна нажмите кнопку «ОК».
После добавления библиотеки, в обозревателе решений у вас появится новый пункт «Microsoft.Office.Interop.Outlook». Для работы с добавленной ссылкой необходимо добавить следующее пространство имен с использованием директивы «using»:
Создайте проект «Windows Form» в «Microsoft Visual Studio», для этого запустите среду разработки и перейдите в меню Файл->Создать...->Проект. Выберете версию .Net Fraemwork и введите имя проекта.
Перейдите в «Обозреватель решений» и найдите группу «References» которая содержит все ссылки на внешние компоненты в проекте. Сделайте клик правой клавишей мыши по данной группе и выберете из появившегося контекстного меню, пункт «Добавить ссылку…».
У вас откроется окно «Менеджер ссылок – (имя вашего проекта)», в левой части данного окна вам будет предложено выбрать одну из категорий. Visual Studio предоставляет четыре группы для выбора.
«Сборки» — список всех компонентов платформы .NET Framework, ссылки на которые можно добавить.
«Решение» — список всех повторно используемых компонентов, созданных в локальных проектах.
«COM» — список всех COM-компонентов, ссылки на которые можно добавить.
«Обзор» — позволяет осуществлять поиск компонента в файловой системе.
Выберете группу «Сборки» и ее подгруппу «Расширения». В центральной части окна вам будет предложен список доступных библиотек для подключения к вашему проекту. Найдите в списке библиотеку «Microsoft.Office.Interop.Outlook» и поставьте галочку рядом с именем данной библиотеки. В нижней части окна нажмите кнопку «ОК».
После добавления библиотеки, в обозревателе решений у вас появится новый пункт «Microsoft.Office.Interop.Outlook». Для работы с добавленной ссылкой необходимо добавить следующее пространство имен с использованием директивы «using»:
- using Outlook = Microsoft.Office.Interop.Outlook; - указывается ссылка на использование типов в пространстве имен «Microsoft.Office.Interop.Outlook», так же создается псевдоним «Outlook», этого пространства имен.
//Получаем экземпляр приложения Outlook //Проверяем запущен ли Outlook if (Process.GetProcessesByName("OUTLOOK").Count() > 0) { //Если приложение запущено, то подключаемся app = System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application") as Outlook.Application; } else { //Если приложение не запущено, то запускаем app = new Outlook.Application(); Outlook.NameSpace nameSpace = app.GetNamespace("MAPI"); nameSpace.Logon("", "", System.Reflection.Missing.Value, System.Reflection.Missing.Value); nameSpace = null; } //Добавляем метод на событие получения нового сообщения app.NewMailEx += new Outlook.ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);Далее необходимо добавить метод обработки события при получении нового сообщения:
private void outLookApp_NewMailEx(string EntrylDCollection) { //Получаем пространство имен MAPI Outlook.NameSpace nameSpace = app.GetNamespace("MAPI"); //Заходим, используя профиль по умолчанию(без диалогового окна) nameSpace.Logon("", "", System.Reflection.Missing.Value, System.Reflection.Missing.Value); //Получение папки входящие Microsoft.Office.Interop.Outlook.MAPIFolder inbox = nameSpace.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); //Получение коллекции Items в папке inbox Outlook.Items unreadItems = inbox.Items.Restrict("[Unread]=true"); MessageBox.Show("Bы получили новое письмо!" + Environment.NewLine + "Непрочитанных сообщений: " + unreadItems.Count, "Новое письмо" ,MessageBoxButtons.OK); }Так же необходимо в класс главной формы добавить следующую переменную:
Outlook.Application app;Запустите ваш проект, нажав на клавишу «F5». У вас запустится главная форма в режиме ожидания нового письма. При поступлении нового письма вы увидите сообщение с количеством непрочитанных сообщений.
Ссылка для скачивания примера: Яндекс.Диск
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!