Очень часто бывает полезно организовать взаимодействие вашей программы с 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». У вас запустится главная форма в режиме ожидания нового письма. При поступлении нового письма вы увидите сообщение с количеством непрочитанных сообщений.
Ссылка для скачивания примера: Яндекс.Диск





Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!