私はAdobe AIR実行時間から外部実行可能ファイルを呼び出しています。アプリケーションは、Airからのネイティブ実行可能ファイル(.exe)として展開されます。私は実行ファイルを起動するために得る唯一の方法は、ブレークポイントを使用して、デバッグ中にアプリケーションを実行することであるFlex - 外部プロセスはデバッグでのみ動作します
var file:File = File.applicationDirectory;
file = file.resolvePath("path to exe");
if(file.exists)
{
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
var procArgs:Vector.<String> = new Vector.<String>();
procArgs[0] = url;
procArgs[1] = contentType;
procArgs[2] = postData;
nativeProcessStartupInfo.arguments = procArgs;
_process = new NativeProcess();
try
{
_process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
_process.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, onOutputData);
_process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
_process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
trace("About to call external process");
_process.start(nativeProcessStartupInfo);
trace("Called external process");
}
:以下は私がNativeProcessクラスを生成し、外部コールを実行するために使用していたコードです。
アプリケーションxmlの<supportProfiles>
タグをデスクトップのextendedDesktopに設定して、ネイティブプロセスへの呼び出しを許可しました。
コンパイラは、アプリケーションのディレクトリ構造にexeをデプロイするようにも設定されています。
私はデバッグモードでしか起動できないが、通常の状況では起動できないようにするために、何を設定することができたのか本当に分かりません。どんな提案も大歓迎です!