順番が前後してしまうが、使い慣れたphpスクリプトをWindowsで実行する場合、通常Windowsにphpをインストールする必要がある。作成したプログラムを気軽に使ってもらいたい場合は単体exeが好ましく、またソースを(普段はサーバーに隠蔽されているからという意味で)隠したい場合にもexe化は有効だ。
さて、方法は2種類あって1つはpc.casey.jp » PHP を exe に変換する方法、もう1つはpc.casey.jp » PHP で Windows GUI アプリケーションを作成するだ。それぞれ別物だと思っていたのだが、後者で作成したものも前者で変換できるので、結局CUIだろうがGUIだろうが単体exeにすることができることがわかった。
また何本かテスを作成してみると1つのスクリプトをCUIにもGUIにも変換できることに気がつく。つまり、GUIでwindow制御が必要な呼び出し元と、CUIの呼び出し元が違ったとしても処理するエンジン部分は同一だからrequire等すればよいだけなのだ。なかなか新鮮で面白い。
ここでは詰まったところと、参考文献を記しておく。次回はWindowsでUptimeを取得するサンプルを公開したいと思う。
スポンサードリンク
上記は参考サイトに公開されているサンプルを動作させてみたもの。この時はどう動くかわからなかったから取り敢えずインストールしてみた。現在はGUIでもCUIでも持ち運びながら開発ができるようになっていて、アンインストールされているが実行できる状態。phpもApacheもそういったものは全くインストールしていない。
上記はインストールしてあった状態。インストールすると必要なものをささっと入れてくれる。アイコンも変更され、phpwを開くとGUIで実行される。エディタで開くとソースが見えるという不思議な感覚。
ウィルスではないです
上記はいろいろ試しているとなんとウィルスだと言い出した!
カテゴリ:未解決のセキュリティリスク
日時,リスク,活動,状態,推奨する処理,パス – ファイル名
2010/09/23 12:50,高,window.exe (window.exe) が SONAR によって検出されました,再起動が必要,コンピュータを再起動する必要があります。,d:\bamcompile\window\window.exe
Offにしようがどうしようが実行できない。実行できないときは、WINDOWED(実行時のウィンド非表示)をしないようにするとデバッグに必要な情報を得ることができる場合がある。
PHP4TS.DLL
最大の難関がこれ。結局必要なかった。
Warning: dl(): Unable to load dynamic library ‘c:\php4\php_winbinder.dll’ – 指定
されたモジュールが見つかりません。
in D:\WinBinder\WinBinder-0.46.0\phpcode\include\winbinder.php on line 23
Fatal error: WinBinder extension could not be loaded.
in D:\WinBinder\WinBinder-0.46.0\phpcode\include\winbinder.php on line 24
Warning: dl_memory(): Invalid library (maybe not a PHP library) ‘PHP4TS.DLL’ in
bambalam_init.php on line 1
Warning: wbIsWBObj: NULL WinBinder object in
バッチファイルにしておくと簡単(例)
make_bcp.bat
..\bamcompile project_template.bcp
pause
project_template.bcp
MAINFILE main.php
OUTFILE program.exe
;WINDOWED
COMPRESS
DONTENCODE
DESTINATION /
EMBED src
DESTINATION include
EMBED D:\WinBinder\WinBinder-0.46.0\phpcode\include\winbinder.php
EMBED D:\WinBinder\WinBinder-0.46.0\phpcode\include\wb_generic.inc.php
EMBED D:\WinBinder\WinBinder-0.46.0\phpcode\include\wb_resources.inc.php
EMBED D:\WinBinder\WinBinder-0.46.0\phpcode\include\wb_windows.inc.php
EXTENSION D:\WinBinder\WinBinder-0.46.0\binaries\php4\ext\php_winbinder.dll
EXTENSION D:\bamcompile\php4\php-4.4.9\extensions\php_mbstring.dll
test.bat
@echo off
program.exe
echo;
pause
参考文献
- 【 ほでなすPHP 】 PHPの基本 -> クラス
- 38. bamcompileでスタンドアロンEXEアプリを作ろう – PHP TIPS:ITpro
- bamcompileでスタンドアロンEXEアプリを作ろう – PHPプロ!TIPS+
- include – PHPプロ!マニュアル
- MOONGIFT : WinBinder オープンソース・ソフトウェア/フリーウェアを毎日紹介
- PHP: Get Download
- PHP GUIツールキット(Gtk)について | OKWave
- PHPでWindowsアプリケーションを作る ~WinBinder+Bamcompile~ | お勉強の軌跡
- SYONテクニカル: WindowsのGUIアプリをWinBinderを用いてPHPで開発
- WinBinder: The native Windows binding for PHP
- WinBinder でデスクトップアプリケーション – PHPプロ!TIPS+
- コマンドラインからファイルをダウンロードする方法 (PHPで拡張DLLを呼び出すexeを作る) – 主に言語とシステム開発に関して
- サイオンコミュニケーションズ株式会社 — 沖縄県でのコールセンター、ネットワーク、システム開発 » 第11回 WindowsのGUIアプリをWinBinderを用いてPHPで開発
- SYONテクニカル: WindowsのGUIアプリをWinBinderを用いてPHPで開発
コメント