Atitit: エンジンとスクリプト アーキテクチャを使用してデスクトップ プログラムを開発します。 。
1. エンジンとスクリプトのアーキテクチャ クロスプラットフォーム、デスクトップ、Web の利点 1
2. アーキテクチャ デスクトップ エンジン (Java、C#) 2
3. PHP デスクトップ エンジンのキー ポイント 2
3.1. : cs デスクトップと Web メソッド 2
3.2 の両方をサポートします。インターフェースは 2
3.3 を実装するために html5+css+js を使用します。Cli インターフェースは Web インターフェース 2
3.4 と相互運用します。 - プロセス 2
3.4.1. HTML5 インターフェイスはバックグラウンド エンジンがあるかどうかを判断します $parser=php c# java js2
3.4.2. デスクトップ エンジン dispatch3
3.4.3. php3 に転送するために cli エンジンを使用します
3.4 .4 . phprun.bat4
3.4.5. Php は、Web とデスクトップの両方のパラメータ転送をサポートします 43.4.6. デスクトップ プログラム $_GET パラメータ解析、$callback5 によるコールバック js
4. よくある質問と最近の実践 5
4.1. cmd.exe または直接の Bat を使用します。 。 5
5. その他の PHP デスクトップ プログラム ソリューション 6
6. 参考資料 6
1. エンジンとスクリプトのアーキテクチャ クロスプラットフォーム、デスクトップ、Web の利点
Java はクロスプラットフォームに非常に優れています。ただし、Java をコンパイルする必要があります。 。柔軟に変更する必要があり、スクリプト化できるデスクトップ プログラムが必要な場合は、エンジンとスクリプトのアーキテクチャを検討できます。 。 。デスクトップのバックエンドとして php または js を使用します。 。 。著者:: Laowa's Claw Attilax Ailong、EMAIL:1466519819@qq.com
2. アーキテクチャ デスクトップ エンジン (Java、C#)
3. PHP デスクトップ エンジンの重要なポイント
3.1. 実行環境:同時に cs デスクトップと Web メソッドをサポートします3.2. インターフェイスは html5+css+js を使用して実装されます
3.3. Cli インターフェイスは Web インターフェイスと相互運用します
3.4.2. デスクトップ エンジンのディスパッチ
Proj.amazon splider
//JS 呼び出しの場合
String meth =(String) メッセージ;
=((文字列)メッセージ2);
= new ParamX().urlParams2Map((文字列)メッセージ2);
webBrowser1 . オブジェクト[0] = r;
with with 1. InvokeScript(callback, object);Console.WriteLine("==exe js rzt:" + o);
return;
}
3.4.3 。 cli引擎转出版にphp
{
private string meth;
public ParesrX(string meth)
{
// TODO: メンバーの初期化を完了します
this.meth = meth;
}
internal String exec()
{
Map m =new Params2Map (this.meth);
if (((String)m.get("$parser") ).Equals("php"))
{
String urlparams = m.serialize();
String cmd = "@qut" + pathx.Startupパス() + "/phprun.bat@qut @qut" + pathx.StartupPath() + "/com.attilax/api.php@qut @qut" + urlparams + "@qut";
cmd=cmd.Replace("@qut",""");
コンソール。 WriteLine(cmd);
String r= new Cmd().RunCmd(cmd);
return r;
}
return "";
3.4.4. phprun.bat
@"%~dp0php5.3.10php.exe" -c "%~dp0php5.3.10php.ini" -f %1 %2 %3
3.4.5。 Php同時サポートweb与桌面のパラメータ传递
Web方式 api.php?urlparams....
3.4 .6. 桌面程序$_GETパラメータの解析、自定要引擎
$param=$argv[1];
$GLOBALS["varx"]["argv"]=$argv ;
$_GET=urlParams2Map($param);
$GLOBALS["varx"]["get"]=$_GET ;
}
function urlParams2Map( $params) {
$o=array();
$a=explode('&',$params);
$GLOBALS["ヴァークス"]["a"]=$a ;
$GLOBALS["varx"]["params"]=$params;
foreach( $a as $k2=>$v2 )
{
$a2=explode("=",$v2);
$k=$a2[0];
$v=$a2[1];
$o[$k]=$v;
}
$GLOBALS["varx"]["o"]=$o ;
return $o;
}
3.4.7. 回调js 通过$callback
文字列 コールバック = (文字列)m.get("$callback");
String js2 = callback + "('" + r + "');";
object[0] d.exe またはダイレクト Bat。 。batメソッドの使用をお勧めします。 。それ以外の場合は、cmd.exe
String cmd = "@qut" + pathx.StartupPath() + "/phprun.bat@qut @qut" + pathx.StartupPath() + "/com.attilax/api.php@qut @qut" + urlparams + "@qut";
cmd=cmd.Replace("@qut",""");
2 つのコマンドを比較すると、多くの人はすぐにその理由を理解できるでしょう
ここには 2 つのコマンドがあり、それらはネストされているためです:
cmd.exe /C "command"
コマンドは cmd.exe です。 、2 つのパラメーターは /C と "command" です。ここでのコマンドは
5. その他の php デスクトップ プログラム ソリューション
php gtkWinBinder
6. 参考情報
PHP を使用してデスクトップ アプリケーションを開発する.htmlCMD 実行時の引用符の追加に関する FAQ - Demi-Moshi のブログ - ブログ チャンネル - CSDN.NET.html
C# で DOS コマンド (CMD コマンド) を実行 - Yang Youshan - ブログ チャンネル - CSDN.NET
paip.asp vbs CLI コマンドラインを介して PHP コードを呼び出します - attilax のコラム - ブログ チャンネル - CSDN.NET
paip シェル cmd コマンドを実行します uapi java php Python の概要 - attilax のコラム - ブログ チャンネル - CSDN NET