Задать вопрос
@RinatG80

Исправить ошибку win32com.clien.Dispatch('Outlook.Application') при закрытом Outlook?

Добрый день, у меня есть проблема с простейшим кодом работы с COM через win32com.client. Установлено, что ошибка возникает только при закрытом приложении Outlook и исполняется исправно, когда Outlook изначально запущен.
Дано:
Outlook 2019 64 разрядная версия
OS Windows 10 x64
Python 3.9
Приложение пишется в IDE pycharm под админской учеткой.

Код:
import win32com.client as win32
outlook = win32.Dispatch(“Outlook.Application”)

Ошибка:
Traceback (most recent call last):
File “C:\Python39\lib\site-packages\win32com\client\dynamic.py”, line 81, in _GetGoodDispatch
IDispatch = pythoncom.connect(IDispatch)
pywintypes.com_error: (-2147221021, ‘Операция недоступна’, None, None)

Каким образом можно решить эту проблему? Как можно обработать эту ошибку и запустить из python приложение outlook до выполнения win32.Dispatch(“Outlook.Application”)?
  • Вопрос задан
  • 740 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Это указывает на то, что Outlook не установлен. " windows live " или " outlook.com " вам не помогут.
У меня была похожая ошибка. Вы пробовали запустить makepy.py из папки win32com, чтобы создать записи для различных COMobject, которые вы используете? В принципе, win32com просто рассматривает все приложения, с которыми вы взаимодействуете, как COMobjects по умолчанию, пока вы не позволите ему узнать о программах, установленных на вашем компьютере. Вам придется запустить makepy.py для каждой программы, которой вы хотите управлять с ее помощью.

После того, как я запустил его, я получил доступ к гораздо большему контролю для Outlook. Он открыл другие ошибки, над исправлением которых я работаю.

Кроме того, если вы возьмете свой comobject ( comboject = win32com.client.Dispatch("Outlook.Application") ) и посмотрите на comboject._prop_map_get_.keys() , вы увидите все, что вы можете использовать для этой программы.
Ответ написан
Комментировать
@RinatG80 Автор вопроса
Как было отмечено в вопросе - код работает при запущенном приложении Outlook. Это говорит о том, что предположение о неустановленном Outlook несостоятельно. Может еще варианты или мысли есть?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽