У меня возникли проблемы с созданием экземпляра объекта StarOffice Desktop. Я использовал стандартную конструкцию ниже, но всякий раз, когда дело доходит до строки: StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');
My StarDesktop Variant остается неназначенным. Я почти уверен, что код в порядке, пока не будет, но, возможно, что-то с установкой OpenOffice будет испорчено. Есть ли способ проверить COM-объекты, или же кто-то имел такую же проблему и может решить ...OpenOffice Desktop Instance не может быть создан (com object)
uses
ComObj;
procedure OpenOfficeDocument;
var
StarOffice: Variant;
StarDesktop: Variant;
begin
StarOffice := CreateOleObject('com.sun.star.ServiceManager');
StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');
// StarDesktop is always "unassigned"
....
Да, я знаю. Я должен был более четко заявить, что я на 100% уверен, что он будет работать нормально в правильной среде. Но мой вопрос в том, что может быть причиной того, почему он не работает. Почему экземпляр 'com.sun.star.frame.Desktop'
не назначен. У меня нет опции/способа его отладки ... И немного несправедливо проголосовать за меня, я исследовал его на один час, не найдя что-то, чтобы объяснить, почему он не может работать. Или как и где проверить, что что-то не так с установкой Office (я удалил и повторно установил его уже дважды » Опять же, я знаю, что это будет работать для других и, как правило, будет работать для меня, но что-то не так в моей системе, и я хотел бы знать некоторую помощь, чтобы указать мне в направлении, что может быть неправильным в системе (а не в примере кода ...)
В StarOffice ServiceManager назначается после CreateOleObject! – Niels
PLZ не использовать комментарии для исправления вопроса - отредактируйте вопрос и обновите текст. –
вы можете попробовать использовать SysInternals Process Monitor, чтобы узнать, какие файлы ключей реестра были опробованы и с какими результатами при попытке создать рабочий стол –