![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
mihanik |
|
||||||||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Привет!
Пишу add-in к MS Outlook. Одной из задач, которую необходимо решить, является импорт множества контактов из определённой папки. Т.е. есть папка, в которой лежит множество файлов с расширением .vcf. Пытаюсь сделать это так... MS Outlook позволяет запускать себя с различными ключами в командной строке, поэтому пытаюсь использовать эти стандартные возможности. Итак, из add-in'а даю команды
AppPath - это текстовая строка для запуска Outlook с ключами OP - папка, в которой располагается исполняемый файл Outlook MyFile.Path - полное имя файла с расширением .vcf, содержащим данные о контакте... После этого я анализирую состояние oExec.Status на равенство 0 (т.е. жду, пока эта версия Outlook работает)
Итак, что происходит... Работает основное окно Outlook, потом выскакивает ещё одно окно Outlook по импорту контакта из файла. Небольшая пауза, а потом на экран вываливается ещё туева хуча окон с диалогом по иморту контакта. Для каждого контакта отдельное окно. Т.е. несмотря на то, что окно видно на экране, моя программа почему-то думает, что окно уже закрылось. Я не удивился бы, если бы при запуске использовал ключ /recycle
Я же этот ключ не использую... Мне же надо, чтобы окна открывались по очереди. Стал анализировать. Стал наблюдать за количеством одновременно открытых процессов при помощи следующего кода
Т.е. считаю количество процессов 'outlook.exe' в памяти компьютера, и, если их больше, чем один, то повторяю цикл с начала. (Жду пока запущено более одного процесса) Выяснил, что данный цикл выполняет всего два прохода. Сначала появляется 2 процесса Outlook (это нормально, т.к. видно два окна Outlook). Потом второй процесс куда-то пропадает и открывается следующее окно. Происходит всё так, как буд-то используется ключ /recycle. Как сделать так, чтобы контакты импортировались по одному, а не вываливалось сразу туева хуча окон? Есть идеи? Может перебирать все кна на экране и проверять их заголовки? (каждый заголовок заканчивается словом "Контакт") Есть идеи? |
||||||||
|
|||||||||
bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Проверил, работает без пустых циклов ожидания. Добавлено через 8 минут и 5 секунд Обрати внимание на последний необязательный аргумент функции Run. |
|||
|
||||
mihanik |
|
||||||||||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
bom...
Ну, что тут сказать... Не забывай, что ты написал программу на vb6, которая запускает ОДИН экземпляр outlook и ждёт его завершения... В твоём случае так и должно всё работать. У меня же другой случай. Моя программа запускается в том (и только в том случае!!!) когда запускается Outlook. Т.е. один экземпляр Outlook по-любому уже висит в памяти машины и моя программа запускает второй экземпляр Outlook для импорта контакта... Приведу черновой вариант процедуры...
Если использовать
То вываливается туева хуча окон. Если же использовать
То ни одно дополнительное окно не появляется, моя программа как бы подвисает...
Спасибо за подсказку, но это уже пройденный этап. Это я знаю довольно давно.
Это сообщение отредактировал(а) mihanik - 9.7.2007, 19:34 |
||||||||||
|
|||||||||||
mihanik |
|
||||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Решил!!!
Решение пришло неожиданно!!!
Использовал объект Inspector из объектной модели Outlook. Inspector - это дополнительное окно Outlook, отображающее какой-либо объект (контакт, письмо и т.п.). Собственно, вот сама часть кода, которая ожидает, пока закроется окно импорта контакта...
|
||||
|
|||||
bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |