あなたの質問 (Flex Builder が mxmlc.exe に渡すコマンド ライン引数) に対する正確な回答はありませんが、メタ的な回答があります。コマンド ラインは、2 つの方法のいずれかを使用して見つけることができます。
1 つ目はプラットフォームに依存しませんが、小さな C++ プログラムをコンパイルする必要があります。同様の問題を解決するときに、以前にこのアプローチを使用したことがあります。できることは、単にコマンド ラインをファイルに出力するラッパー アプリケーションを作成することです。このアプリケーションをビルドし、mxmlc.exe の一時的な置換としてドロップします。Flex Builder がそれを実行すると、結果のファイル「cmdline.txt」にアクセスして、呼び出された完全なコマンド ラインを取得できます。
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
ofstream cmdLine;
cmdLine.open("cmdline.txt");
for (int i = 0; i < argc; i++) {
cmdLine << argv[i];
if (i < argc)
cmdLine << " ";
}
cmdLine.close();
return 0;
}
Flex Builder でこの汚いトリックを実行することに抵抗がある場合は、Windows で実行していると仮定する別の方法があります。WMIを使用して、実行中のすべてのプロセスを反復処理し、それらのコマンド ライン情報を取得できます。Ruby は私の選択した言語です。これには、Windows 用の Ruby インタープリターをインストールする必要があります。これは、Windows 用のワンクリック Ruby インストーラーで簡単に実行できます。
インストール後、Flex Builder がビルドを開始したらすぐに次のスクリプトを実行します。
require 'win32ole'
wmi = WIN32OLE.connect("winmgmts://")
processes = wmi.ExecQuery("select * from win32_process")
for process in processes do
cmdLine = process.CommandLine
puts "Command line: #{cmdLine}" if cmdLine =~ /mxmlc/
end
コマンドラインで「mxmlc」で開始されたプロセスに対してのみコマンドラインを出力する正規表現を追加しました(これは必要に応じて機能するはずです)。各プロセスを反復するより一般的な解決策として、次を含む行の末尾にある if 句を削除するだけです。
puts "Command line: #{cmdLine}" if cmdLine =~ /mxmlc/
これにより、StartRemoteThread を使用して低レベルの魔法を実行し、PEB 構造をナビゲートするという頭痛の種から解放されます。
これは、質問の性質を考慮し、開発OSに関する詳細情報なしで、私ができる最善のことです。これで問題が解決する場合は、投稿を編集して、同様の問題に直面している人々がこの解決策を見つけられるようにすることをお勧めします。「実行中のプロセスのコマンドライン引数を取得する方法」のようなタイトルの方が適切かもしれません。