Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 3
Регистрация: 30.07.2013
Сообщений: 48
.NET 3.x

Работа с разными версиями Outlook

12.02.2015, 16:09. Показов 2568. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем дня!

Есть приложение, отсылающее (или подготавливающее для отправки) e-mail'ы.
Естественно, добавлена ссылка на библиотеку Microsoft Outlook 15.0 Object Library через "Проект -> Добавить ссылку -> COM", в коде дописано:
C#
1
using Microsoft.Office.Interop.Outlook;
Приложение должно работать с разными версиями Outlook и распространяться передачей exe'шников (без доп. файлов).

Вот тут:
Некорректная работа с Microsoft.office.interop.excel.dll на других ПК
описана похожая проблема с Excel и рекомендуется "позднее связывание", но информации маловато, разобраться не смог.

Если кого не сильно напряжет, напишите пошагово, пожалуйста, что сделать:
1) Найти библиотеку, которую используешь.
2) Скопировать файл в папку с решением.
3) В VB зайти туда-туда, выбрать скопированный файл.
4) В коде файла "..." дописать код сюда: "..."
...
0) PROFIT!
Вложения
Тип файла: zip SendMsg.zip (61.9 Кб, 3 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2015, 16:09
Ответы с готовыми решениями:

Работа с документами xls и xlsx на машинах с разными версиями офиса (2003-2013)
Здравствуйте! Требуется работать с документами xls и xlsx на машинах с разными версиями офиса(2003-2013), поэтому библиотеки на основе...

Совместимость программы с разными версиями framework
Если я компилирую проект под framework 4, то будет ли работать программа, если в ос установлен framework не именно этой версии, а выше? И...

Подключение сторонней DLL. Нужно, чтобы программа могла работать с разными версиями dll
Есть dll с неким драйвером для фискального регистратора. Требуется прицепить ее к программе на C#. Проблема в том, что эти драйвера...

1
2 / 2 / 3
Регистрация: 30.07.2013
Сообщений: 48
02.03.2015, 13:03  [ТС]
Есть продвижение.

Синтаксис "InvokeMember":
C#
1
2
3
4
5
6
7
public Object InvokeMember(
    string name,
    BindingFlags invokeAttr,
    Binder binder,
    Object target,
    Object[] args
)
Так и не понял, где можно взять допустимые значения "name" и параметры для работы с ними.

Код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Для .NET менее 4.0:
                // Создаем статические объекты:
                object oApp;
                object oMsg;
                // Используем "позднее наследование"
                oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application"));
                // Собираем данные
                string Info = String.Format("Я открыл вложение.\nИнформация обо мне:\n   Имя учетной записи: {0}\n   Имя ПК: {1}\n   Серийный номер ПК: {2}\n   Время открытия: {3}", System.Environment.UserName, Environment.MachineName, GetID(), DateTime.Now.ToString("HH:mm:ss dd.MM.yyyy"));
                // Задаем параметры сообщения
                oMsg = oApp.GetType().InvokeMember("CreateItem", System.Reflection.BindingFlags.InvokeMethod, null, oApp, new object[] { 0 });
                oMsg.GetType().InvokeMember("To", System.Reflection.BindingFlags.SetProperty, null, oMsg, new object[] { "yuaparin@aeroflot.ru" });
                oMsg.GetType().InvokeMember("Subject", System.Reflection.BindingFlags.SetProperty, null, oMsg, new object[] { "Срабатывание проверки на вложения №1" });
                oMsg.GetType().InvokeMember("Body", System.Reflection.BindingFlags.SetProperty, null, oMsg, new object[] { Info });
                // Показать подготовленное письмо
                oMsg.GetType().InvokeMember("Display", System.Reflection.BindingFlags.InvokeMethod, null, oMsg, new object[] { true });
                // Отправить письмо
                oMsg.GetType().InvokeMember("SendMessage", System.Reflection.BindingFlags.InvokeMethod, null, oMsg, null);
Все прекрасно вплоть до отправки. Сомневаюсь, что правильно написал:
C#
1
oMsg.GetType().InvokeMember("SendMessage", System.Reflection.BindingFlags.InvokeMethod, null, oMsg, null);
Добавлено через 34 минуты
Оказывается, нужно использовать не "SendMessage", а "Send":
C#
1
oMsg.GetType().InvokeMember("Send", System.Reflection.BindingFlags.InvokeMethod, null, oMsg, null);
Пока отрабатывает на 2010м и 2013м Outlook'ах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2015, 13:03
Помогаю со студенческими работами здесь

Работа с Access с разными версиями .NET
Среда Visual Studio 2015. Когда по умолчание стоит версия 4.6 такой код работает, а когда меняю на версию 4, то нет. Когда меняю версию...

Проверка открытого окна с разными версиями
День добрый. Можете подсказать: у меня есть проверка на открытие окна приложения: IntPtr DialogHandle = FindWindow(null,...

Подключение двух dll, работающих под разными версиями .net
Добрый день! Проблема такая: к проекту на c# необходимо подключить две библиотеки dll. Одна из них не работает, если целевой платформой...

Работа разных браузеров с разными версиями Java
Добрый день, форумчане. Скажите пожалуйста, возможно ли так: Чтобы IE 8 работал с явой 1.6.х, а мозила с последней, 8 явой? Реально...

Некорректная работа ККМ в 1с поликлинике с разными версиями драйверов
В моей организации стоит много ККМ, подключены через терминал к развернутой на сервере переписанной вдоль и поперек 1с Поликлиникой,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru