StarOffice Desktopオブジェクトのインスタンスを作成する際にいくつか問題があります。 私は以下の標準的な構成を使用しましたが、それは次の行に当てはまるときはいつも:StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');
My StarDesktop Variantは未割り当てのままです。私は、コードがそこまでOKだと確信しているが、おそらくOpenOfficeのインストールで何かが台無しになっている。 は 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オブジェクトをチェックする方法をありますか誰かが同じ問題を抱えていたし、それを解決することができました。私はそれが正しい環境で正常に動作することを100%確信していることを、より明確に述べたはずです。 しかし私の質問は、それがうまくいかない理由です。
'com.sun.star.frame.Desktop'
インスタンスが割り当てられていない理由私はそれをデバッグするオプション/方法がありません... それは私に投票して少し不公平です、私はそれがうまくいかない理由を説明する何かを見つけることなく1時間のために研究した。 Officeのインストールに何か問題があるかどうかを確認する方法と、それをもう2度再インストールした場合 " もう一度、これは他の人にとってはうまくいくと思いますが、通常は私にとってはうまくいくはずです。 (...とないのコード例では)システムで間違っている可能性がどのような方向に私を指すようにいくつかの助けを知って
StarSuiteのServiceManagerはCreateOleObject後に割り当てられます! – Niels
plz質問を修正するためのコメントを使用しない - 質問を編集し、テキストを更新する。 –
SysInternals Process Monitorを使用して、デスクトップを作成しようとしたときにどのレジストリキーファイルが試行され、どの結果が返されるかを確認することがあります。 –