Перейти к концу метаданных
Переход к началу метаданных

Некоторые редакции MS Office не позволяют работать с OLE automation, АРМ Энергосфера при этом выдает сообщение "Interface not supported"

https://answers.microsoft.com/en-us/office/forum/office_2016-office_install/office-click-ro-run-and-ole-automation/abc2fe0d-58e4-42eb-84ef-a6e7c1c7b3f4?auth=1

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.

Чуть подробнее по веткам MS Office https://stackoverflow.com/questions/43400794/interface-not-supported-error-when-attempting-to-open-excel-or-word-from-delph

Еще одно решение, столкнулся с офис 2013 x64, ошибка как на скриншоте.

Через procmon вижу обращение controlage.exe к ветке реестра HKCR\TypeLib\{00020813-0000-0000-C000-000000000046}

в ней было два ключа

1.8 и 1.9

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8]
"PrimaryInteropAssemblyName"="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
@="Microsoft Excel 15.0 Object Library"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8\0]

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8\0\win64]
@="C:\\Program Files\\Microsoft Office\\Office15\\EXCEL.EXE"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8\FLAGS]
@="0"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8\HELPDIR]
@="C:\\Program Files\\Microsoft Office\\Office15\\"

[HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9]

Ключ 1.9 от более новой версии офис (непонятно откуда взявшийся, возможно от office 365 который предустановлен на windows 10).

Этот ключ нужно удалить, после это ошибка interface not supported исчезает.

  • Нет меток