- - PR -
officeオートメーションについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-14 18:22
<開発環境>
Windows 2000 .Net 2003 いつもお世話になっております。 VB.NETでofficeオートメーションを使用してPOWERPOINTを操作しています。 localhostまたは、他クライアントが単一でPOWERPOINTを操作した時は問題ないのですが 双方または複数がlocalhostにあるPOWERPOINTを操作すると、officeのエラーで 「訂正できないエラーが見つかりました。POWERPOINTを閉じて再起動して下さい。」 というエラーが出てきます。 DCOMの構成を変更して、POWERPOINTの実行を対話ユーザーにし、二人が起動ロジックを 実行すれば、POWERPOINTが二つ立ち上がり、複数であれば、その複数分立ち上がります。 その際、POWERPOINTを同時に操作(TEXTBOXに値を挿入など)した時に、上記のエラーが出てきます。 officeをマルチスレッドで操作しようとしているので当たり前なのですが、 誰かが、POWERPOINTをオートメーションで操作していれば、待機させるなど 何か回避方法はありませんか?? 無理があるのは重々承知しているのですが、なんとか出来る方法がございましたら ご教授ください。 よろしくお願いします。 |
|
投稿日時: 2005-02-14 21:51
CreateObjectでなく、今動いているオブジェクトを捕まえるのがありましたよね。アレで「捕まえられたら誰かが実行中」っていうのとか。
きちんと終了処理をしないと、終わっている判定ができませんけど。 # VB.NETだからできる、かな? _________________ |
|
投稿日時: 2005-02-15 11:56
Jittaさん、ご返答ありがとうございました。
お返事が遅れ申し訳ありません。 Jittaさんの書き込みより引用;---------------------------------------------------- >CreateObjectでなく、今動いているオブジェクトを捕まえるのがありましたよね。 >アレで 「捕まえられたら誰かが実行中」っていうのとか ------------------------------------------------------------------------------- Jittaさんのおっしゃっているのは、GetObjectの事ですよね? GetObjectで誰かがCreateObjectをしてPOWERPOINTを立ち上げていれば処理をしない、 または待機させると言うことだと思うのですが、違っていればお手数ですが、 再度ご教授下さい。 上記の通りの事をおっしゃっているのであれば、一度試させていただきます。 ありがとうございました。 結果をまた書き込みしますので、こんな方法もあるよ。などありましたら 教えてください。 |
|
投稿日時: 2005-02-15 20:46
Office製品をサーバのオートメーションで使う場合、接続するユーザと同じ数のライセンスが必要です。同時に実行する、ではなく、接続するユーザの数、です。従業員が20人の職場で使う場合20ライセンス、不特定多数が接続するWebアプリケーションでは事実上不可能、ということです。ご注意を。
_________________ |
|
投稿日時: 2005-02-16 14:39
Jittaさん、ご返答ありがとうございました。
私もいろいろ調べてみたのですが、 PowerPointをオートメーションで使用する場合、インスタンスは1つしか作成できず 後からオブジェクトを生成しても、今起動しているインスタンスを共有するみたいです。 Word,Excelの場合は、オブジェクトを生成する度に新しいインスタンスを作成するので ファイル操作を混同することはないのですが、PowerPointは混同してしまうため エラーが発生するみたいです。 Office製品には、上記のようにシングルユースアプリケーション(Excel等)と マルチユースアプリケーション(PowerPoint、OE)に分けられるみたいですね。 (PowerPointをマルチユースにする意味を知りたいですが、、、。) Jittaさんご協力いただきありがとうございました。 |
1