问题
I have a small application which automates Microsoft Word via COM/OLE Automation.
Unfortunately this doesn't work with the virtualized Click-to-run editions of Word, because they don't have the required keys in the registry. (At least not where they are exptected to be) In other words: CreateObject
fails because the necessary COM classes are not registered.
Is there any way to automate the Click-to-run editions of Microsoft Office? Perhaps some compatibility layer?
EDIT: I found just two pages where users/developers were complaining about this. Either OLE automation has become obsolete or no one is using the C2R editions...
回答1:
Unfortunately it's not possible to do automation with the Click-To-Run Office editions. It's due to the virtualization process used.
According to the information here you can switch your C2R-edition to a MSI edition. It seems like the license is the same for both editions and also the product key.
回答2:
It took me a few days to find this post verifying my suspicions. Microsoft really screwed this one up for anyone with an app depending on automation it seems.
For any googlers out there, the error I've been looking at in my app is:
Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80040154
I was able to resolve this by uninstalling the office click-to-run version and doing a full install.
来源:https://stackoverflow.com/questions/3372394/is-it-possible-to-automate-a-click-to-run-application