私の上司には、彼が書いたWindowsアプリケーションがあります。これはWindowsコンソールアプリケーションではなく、Windows GUIアプリケーションです。もちろん、私たちはソースコードを持っていますが、彼はそれをコンソールアプリケーションにしたくありません。彼はそれを通常のGUIアプリケーションのままにしたいと考えています。PHPを使用したWindowsアプリケーションからの出力の取得
これは、PHPから呼び出してパラメータを渡し、呼び出し元のPHPスクリプトに情報を返すことができるようにするためです。私は簡単にWindowsコンソールアプリケーションを呼び出し、出力を読むことができます。私はVBSスクリプトを呼び出して、それらから出力を得ることさえできます。
しかし、私たちは、テキストファイルに出力を書き込んだり、php内から読み込むことなく、呼び出し元のPHPスクリプトにデータを出力するために、通常のWindowsアプリケーションを取得する方法が不足しています。
これは誰でもできましたか?もしそうなら、どうですか?
ありがとうございます。
エイミー
編集、追加する:PHPは、彼がこのコンソールに書き込みをしていることの情報を見ていない、
BOOL bConsole = AllocConsole();
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwCharsWritten = 0;
string sS3Path = sCommandLine.substr(sCommandLine.find("S3://") + 5);
string sMessage = "S3 Path: " + sS3Path;
BOOL bWritten = WriteConsole(hOutput, sMessage.c_str(), sMessage.size(), &dwCharsWritten, NULL);
しかし:どうやら、上司が自分のアプリケーションにこのコードを置きます。私たちはexecとshell_execを無駄にしようとしました。
どうやらこれはGUIアプリケーションやコンソールアプリケーションとしてアプリケーションを実行するための選択肢としてではない、実行時に、アプリケーションのビルド時に行われ、非自明である - あなたはできません*本当に*コマンドラインスイッチに基づいて選択します。参照してください:http://stackoverflow.com/questions/54536/win32-gui-app-that-writes-usage-text-to-stdout-when-invoked-as-app-exe-help –
私が言ったように、LIKE ... GUIアプリケーションであっても情報を標準出力にパイプすることはできます。コンソールウィンドウは表示されませんが、他のプログラムは引き続き情報を読み取ることができます。 –