タイトルとして、どのコマンド/クラスを使用できますか? 関数が存在する場合、コマンドシェルからコールバックを取得する関数は?
1759 次
1 に答える
2
この記事に従って、AIR で他のプロセスを実行して通信することができます。
そのため、Windows コマンド プロンプトを実行する場合は、cmd.exe の場所 ("%windir%\system32\cmd.exe") を指定する必要があります。残念ながら、AIR は %windir% を認識できないため、実際には Windows ディレクトリへのフル パスを指定する必要があります (通常は C: ですが、C: でない場合の処理方法を理解する必要があります)。
厄介なことに、コマンド プロンプトは通常の入力ストリームのようには機能しないようです。書き込もうとするとエラーが発生します。自分の知らない方法があるのかもしれません。代わりに、引数を指定してコマンド プロンプトを起動することができます。
たとえば、次のコードはコマンド プロンプトを起動し (Windows が C であると仮定)、"hello" を出力し、出力をトレースします (この場合は単に "hello" になります)。
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("C:\\Windows\\System32\\cmd.exe");
nativeProcessStartupInfo.executable = file;
var processArgs:Vector.<String> = new Vector.<String>();
processArgs.push("/C echo 'hello'");
nativeProcessStartupInfo.arguments = processArgs;
process = new NativeProcess();
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
process.start(nativeProcessStartupInfo);
public function onOutputData(event:ProgressEvent):void
{
trace("Got: ", NativeProcess(event.target).standardOutput.readUTFBytes(process.standardOutput.bytesAvailable));
}
于 2013-01-03T05:05:21.920 に答える