2016-04-22 9 views
0

私は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をデプロイするようにも設定されています。

私はデバッグモードでしか起動できないが、通常の状況では起動できないようにするために、何を設定することができたのか本当に分かりません。どんな提案も大歓迎です!

答えて

0

私の問題は2倍になりました。Flex UIによって処理されていない外部実行ファイルにデバッグコードがいくつかあり、コールが失敗しました。また、適切なフラグが使用されなくなるように設定を変更しました。これらは、コールが失敗する原因を突き止めるのを助けるために追加されたもので、間違ったパラメータが渡された元の問題を修正した後は削除しませんでした。

関連する問題