HOME -> プログラム -> PHP Script -> PHP 実践-2 -> PHP 実践 Win32OLE-1

PHP 実践 Win32OLE-1

 WindowsではCOMという手法によって様々な言語やスクリプトからアプリケーションを操作することが可能です。 VC++やVBは言うに及ばず、有名どころではPerlやRuby等のスクリプト言語もこの方法をサポートしています。
 そしてもちろん、PHPもこの手法をサポートしています。 名前からしてWindows環境でしか利用できません。 つまり、Windows版PHPのみでの利用が可能です。当然ですが、Unix環境では利用はできません。 Win版PHPではコアにCOMサポートが含まれていますので、特殊なインストール処理を要しません。
 まずは動作の確認を行ってみます。
<?php
$WshShell = new COM("WScript.Shell");
var_dump($WshShell);
?>
 上記ではシェルへのCOMオブジェクトを取得しています。var_dump( ) によって取得したオブジェクトを表示しています。 表示は
object(com)#1 (0) { } 
 と表示されたかと思います。 間違いなくCOMオブジェクトが取得できた旨、確認ができたかと思います。
 COMクラスのコンストラクタに渡す第一引数(上記の例でいえば"WScript.Shell")ですが、これは利用するCOMのProgIDを指定することになっています。
 MSOfficeのWordであれば"Word.Application"、Excelであれば"Excel.Application"といった具合に、操作したアプリケーション毎に決められたProgIDがあるので、それを渡してやることでCOMオブジェクトを取得します。 以下に主要なアプリケーションのProgIDをいくつか紹介します。
アプリケーションProgID
Adobe IllustratorIllustrator.Application.x
Adobe PhotoShopPhotoshop.Application.x
Adobe Affter EffectAftereffect.Application.x
Microsoft Internet ExplorerInternetExplorer.Application
Microsoft ExcelExcel.Application
Microsoft AccessAccess.Application
Microsoft OutlookOutlook.Application
Microsoft WordWord.Application|
Windows Scripting HostWscript.Shell
 Adobe製品群もCOMをサポートしています。 ただしバージョンによってはサポートしていないので確認が必要です。 ProgIDの最後のxはバージョンを指定しますが、Illustratorであればver10が1となり、CS1では2、CS2では3を指定します。 これはIllustrator10からCOMをサポートするようになったからです。 同じ理由でPhotoShop7が1、PhotoShopCS1が2、PhotoShopCS2が3となっています。 ProgIDの最後のxをそれぞれ適正なバージョンに置き換える必要があります。


2008年 10月 14日ドキュメント作成
2008年 10月 18日ドキュメント更新