Daniel Rikowski
Daniel Rikowski

Reputation: 72524

Is it possible to automate a Click-to-run application?

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...

Upvotes: 9

Views: 2198

Answers (3)

Troy Wolbrink
Troy Wolbrink

Reputation: 11

According to https://answers.microsoft.com/en-us/msoffice/forum/all/office-click-ro-run-and-ole-automation/abc2fe0d-58e4-42eb-84ef-a6e7c1c7b3f4, "I have found the solution myself. With click-to-run, Office installation does not register typelibs in HKCR\Typelib. Instead, it registers typelibs in HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\SOFTWARE\Classes\TypeLib. VBAs running in Office is aware of the location and runs fine. External application is not aware of the location. So the solution is to run regtlib.exe on mso.dll to register Office typelibs in HKCR\Typelib so that external applications can run OLE Automation correctly."

Upvotes: 0

MicSim
MicSim

Reputation: 26806

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.

Upvotes: 5

Ken
Ken

Reputation: 1985

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.

Upvotes: 4

Related Questions