最新のPHPニュース
PHPとWindowsでできる5つのクール?なサンプル
Jaslabsにて、PHPとWindowsを使ってできる5つのクール?なサンプルスクリプトが紹介されています。
著者のJustin Silverton氏曰く、PHPの多くのサンプルはLinuxまたはUNIX上で動作するようにデザインされているのでWindows環境で動作する面白いサンプルを用意したそうです。
紹介されているサンプルスクリプトは、以下の5つです。
CD-ROMのイジェクト
CD-ROMをイジェクトします。
//Windows Media Playerのインスタンスを作成 $mp = new COM("WMPlayer.OCX"); //ドライブリストの1番目のCD-ROMをイジェクト $mp->cdromcollection->item(0)->eject();
レジストリの読み書き
Windowsの設定が保存されているレジストリを読み書きします。
function registry_read($folder, $key) { $WshShell = new COM("WScript.Shell"); $registry = "HKEY_LOCAL_MACHINE\SOFTWARE\\" . $folder . "\\" . $key; $result = $WshShell->RegRead($registry); return($result); } $key = registry_read("RegisteredApplications","Firefox");
作成する関数registry_readには引数が二つあり、それぞれフォルダ名とキーになります。
また、レジストリへの書き込みは以下のようになります。
function registry_write($folder, $key, $value,$type="REG_SZ") { $WshShell = new COM("WScript.Shell"); $registry = "HKEY_LOCAL_MACHINE\SOFTWARE\\" . $folder . "\\" . $key; $result = $WshShell->RegRead($registry); $result = $WshShell->RegWrite($registry,$value, $type); return($result); }
このregistry_write関数の引数は4つあり、フォルダ名とキー、値と種類になります。
PHPスクリプトをWindowsのサービスとして登録・解除
このサンプルではPHPスクリプトをWindowsのサービスとして登録します。
# サービスとして登録 win32_create_service(array( ’service’ => ‘myservice’, # the name of your service ‘display’ => ’sample dummy PHP service’, # description ‘params’ => ‘c:\path\to\script.php run’, # path to the script and parameters )); # サービスの解除 win32_delete_service(’myservice’); # サービスとしてコードを実行 if ($argv[1] == 'run') { win32_start_service_ctrl_dispatcher('myservice'); while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) { # ここにコードを記述する # 一般的なルールとしてループ処理30秒未満で } }
注意する点として、このサンプルではwin32service関数を使うためその拡張モジュールが必要になります。前もってphp_win32service.dllを準備してphp.iniなりに追加しておく必要があります。
印刷
本来であればWindows上で印刷するまでのサンプルと期待したのですが、ネットワーク上のプリンタに接続するだけのようです。
このサンプルでプリンタ関数を使用するため前もってphp_printer.dllを有効にしておいてください。
#ネットワーク上のプリンタを開くため、ホスト・プリンタ名を整形 function getPrinter($host,$SharedPrinterName) { return “\\\\”.$host.”\\”.$SharedPrinterName; } #プリンタを開く $handle = printer_open(getPrinter(”my computer 2″,”my printer”)); #ここに印刷のためのコードを記述します #必要な関数はhttp://us2.php.net/printerを参照 # *NIXの場合は以下のようなコード function lpr($string,$printer) { $prn=(isset($printer) && strlen($printer))?”$printer”:C_DEFAULTPRN ; $CMDLINE=”lpr -P $printer “; $pipe=popen(”$CMDLINE” , ‘w’ ); if (!$pipe) {print “pipe failed.”; return “”; } fputs($pipe,$string); pclose($pipe); }
現在のシステムのプロセス一覧表示
このサンプルでは現在実行しているプロセスの一覧を表示します。
win32ps関数を使用しているので、前もってphp_win32ps.dllを有効にしておく必要があります。
# 現在システムで実行している全てのプロセスのリスト print_r(win32_ps_list_procs()); # メモリ使用量の統計情報 print_r(win32_ps_stat_mem()); # プロセスの統計情報 print_r(win32_ps_stat_proc(int processid));
いかがでしょうか。印刷に関するサンプルは物足りなさを感じますが、ものによっては、もしかすると何かに役立つことがあるかもしれません。
関連リンク
この記事へのトラックバックURL
>> ニュースの一覧へ戻る





