我在創建StarSuite桌面對象的實例時遇到了一些問題。 我使用了下面的標準構造,但是每當涉及到該行時:StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');
我的StarDesktop變體保持未分配狀態。我很肯定代碼是可以的,直到那裏,但可能OpenOffice安裝的東西就搞砸了。 有沒有一種方法來檢查COM對象或沒有人有同樣的問題,並可以解決這個問題...無法創建OpenOffice桌面實例(com對象)
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"
....
是的,我知道。我應該更清楚地表明,我十分確定它會在正確的環境中正常工作。 但我的問題是可能是什麼原因,它不起作用。爲什麼'com.sun.star.frame.Desktop'
實例未分配。我沒有選項/方式來調試它... 投票給我失望有點不公平,我研究了一個小時,但沒有找到解釋爲什麼它不起作用的東西。 或者如何以及在哪裏檢查Office安裝是否有問題(我已經卸載並重新安裝了兩次「 」我再次明白,這對別人很有用,通常會爲我工作,但是我的系統出了問題,而我想知道一些幫助來點我的方向可能是錯誤的系統(而不是在代碼示例...)
的StarSuite中的ServiceManager是CreateOleObject後分配! – Niels
PLZ不要使用註釋來解決問題 - 編輯問題並更新文本。 –
您可以嘗試使用SysInternals進程監視器來查看嘗試創建桌面的哪些註冊表項文件,以及在嘗試創建桌面時使用哪個結果 –