Можно ли автоматизировать приложение, нажатое для запуска?


У меня есть небольшое приложение, которое автоматизирует Microsoft Word через COM / OLE Automation.

К сожалению, это не работает с виртуализированными версиями Word, используемыми для выполнения щелчка мышью, поскольку они не имеют необходимых ключей в реестре. (По крайней мере, не там, где они ожидаются) другими словами: CreateObject терпит неудачу, потому что необходимые классы COM не зарегистрированы.

Существует ли какой-либо способ автоматизировать выпуски Microsoft Office, выполняемые по щелчку мыши? Возможно, какая-то совместимость слой?

EDIT: я нашел только две страницы, где пользователи/разработчики жаловались на это. Либо OLE automation устарела, либо никто не использует выпуски C2R...

2 7

2 ответа:

К сожалению, автоматизация с помощью выпусков Office Click-To-Run невозможна. Это связано с используемым процессом виртуализации.

В соответствии с приведенной здесь информацией Вы можете переключить C2R-edition на версию MSI. Похоже, что лицензия одинакова для обоих выпусков, а также ключ продукта.

Мне потребовалось несколько дней, чтобы найти этот пост, подтверждающий мои подозрения. Microsoft действительно облажалась с этим для любого, у кого есть приложение, зависящее от автоматизации, кажется.

Для всех гуглеров там, ошибка, которую я искал в моем приложении:

Извлечение фабрики класса COM для компонента с CLSID {91493441-5A91-11CF-8700-00AA0060263B} не удалось из-за следующей ошибки: 80040154

Я смог решить эту проблему, удалив версию office click-to-run и выполнив полная установка.