- 380 名前:デフォルトの名無しさん [2009/06/23(火) 06:48:32 .net]
- OpenOffice3.1.0を使用しています.
クイック起動はオフにしています. DelphiからOpenOffice Calcを使ってxlsファイルを読み込む処理をしています. www.clubdelphi.com/trucos/index.php?id=428 ここを参考に作成しました. ClassID:=ProgIDToClassID('com.sun.star.ServiceManager'); h:=CoCreateInstance(ClassID, nil, CLSCTX_LOCAL_SERVER, IDispatch, id); とした時点で、soffice.bin/soffice.exeという2個のプロセスが生成されます. その後、読み込み処理を終了して、 ワークブックのクローズ、 objDocument.Close(True); を実行した時点で、 OpenOffice Caleは表示を終了し、画面からは消えます. しかし、最終的に TWorkbook.Destroyを実行しても、 soffice.bin/soffice.exeという2個のプロセスが消えません. CoCreateInstanceの後始末が必要なのかなと思って、 ServiceManager.Release; としたら、サポートしていないと例外が発生しました(objServiceManager := id;). なにか、OpenOfficeを終了させるというコマンドを投げないといけないのでしょうか (ExcelのOleFunction("Quit");の様な) ぐぐってみても、OpenOffice Basicで終了コマンドというようなものが見つかりませんでした. soffice.bin/soffice.exeという2個のプロセスが残らないようにする方法を教えてください. よろしくお願いします.
|

|