Можно ли автоматизировать приложение, нажатое для запуска?
У меня есть небольшое приложение, которое автоматизирует Microsoft Word через COM / OLE Automation.
К сожалению, это не работает с виртуализированными версиями Word, используемыми для выполнения щелчка мышью, поскольку они не имеют необходимых ключей в реестре. (По крайней мере, не там, где они ожидаются) другими словами: CreateObject
терпит неудачу, потому что необходимые классы COM не зарегистрированы.
Существует ли какой-либо способ автоматизировать выпуски Microsoft Office, выполняемые по щелчку мыши? Возможно, какая-то совместимость слой?
EDIT: я нашел только две страницы, где пользователи/разработчики жаловались на это. Либо OLE automation устарела, либо никто не использует выпуски C2R...
2 ответа:
К сожалению, автоматизация с помощью выпусков Office Click-To-Run невозможна. Это связано с используемым процессом виртуализации.
В соответствии с приведенной здесь информацией Вы можете переключить C2R-edition на версию MSI. Похоже, что лицензия одинакова для обоих выпусков, а также ключ продукта.
Мне потребовалось несколько дней, чтобы найти этот пост, подтверждающий мои подозрения. Microsoft действительно облажалась с этим для любого, у кого есть приложение, зависящее от автоматизации, кажется.
Для всех гуглеров там, ошибка, которую я искал в моем приложении:
Извлечение фабрики класса COM для компонента с CLSID {91493441-5A91-11CF-8700-00AA0060263B} не удалось из-за следующей ошибки: 80040154
Я смог решить эту проблему, удалив версию office click-to-run и выполнив полная установка.