[PHP-users 8867] Re: PHP4.1.2 on Apache for WIn 32上でのCOM関数の利用について
Moriyoshi Koizumi
php-users@php.gr.jp
Tue, 23 Jul 2002 18:35:51 +0900
小泉@町田です。
あまりお役に立てませんが。
まず、w2k + Apache 2.0.36 + php4.2.1(モジュールとして) + Word 2000
では実行できました。(ちなみにテストサーバ上です)
ひとまずphp のバージョンを上げてみるといい結果が得られるかもしれません。
あと、これは経験的な話なのですが、
OLEサーバ(この場合はWord)が既に起動していて、何かの理由でハングアップして
いて、その状態でもう一度起動させようとすると、サーバーを実行できない旨のエ
ラーが出ることがあるようです。
VB / ASP 関係のページの方が、OLE 関係の情報が充実しているので
そちらを当たってみてはいかがでしょうか?
"CreateObject" を "new COM" に置換するだけで動くようなサンプルも
多いと思いますので。
(実際には変数名に "$" つけたりしなくてはいけませんが。)
# COM 関係の質問って、皆さん "PHPに関係ありません" と言い出そうとして
# 口を押さえているような気がする…。
"Hisaji ONO" <hi-ono@mn.xdsl.ne.jp> wrote:
> はじめまして、尾野と申します。
>
> PHPをやりはじめて、かれこれ、1年です。
>
> 件名のCOM関数について、伺いたいのですが。
>
> PHPのオンライン・マニュアルにある以下のサンプルプログラムを実行させたの
> ですが。
>
> <?
> $word = new COM("word.application") or die("Can't start Word!");
> $word->Visible = 1;
> $word->Documents->Add();
> $word->Selection->Font->Name("Verdana");
> $word->Selection->Font->Bold();
> $word->Selection->TypeText($text);
> $word->Documents[1]->SaveAs("d:\temp\test.doc");
> $word->Quit();
> $word->Release();
> $word = null;
> ?>
>
> 次のエラーが出てしまいました。
>
> Warning: Unable to obtain IDispatch interface for CLSID
> {000209FF-0000-0000-C000-000000000046}: サーバーの実行に失敗しました in
> c:\Program Files\Apache Group\Apache\htdocs\comtest.php on line 2
>
> Fatal error: Maximum execution time of 30 seconds exceeded in c:\Program
> Files\Apache Group\Apache\htdocs\comtest.php on line 2
>
> 私の環境は以下の通りです。
>
> OS:WindowsNT4.0 Server SP6a
> WWWサーバ:Apache1.3.6
> PHP4.1.2:CGI-BINで利用
> MSWORD2000
>
> どなたか、できましたら、上の対策方法をご教授ください。