我想将flash模块生成的数据发送到windows中的外部可执行文件中。根据我对进程间通信的了解,我认为在这种情况下使用管道是合适的。我正在使用Flash专业版CS5,当在actionscript中使用'trace'命令时,输出将显示在flash professional的输出窗口中。我认为Flash将数据传输到输出窗口,如果可以,则可以获取该管道的句柄。有什么方法可以在执行跟踪命令时将flash输出本身的输出写入,或者将事件上生成的数据直接写入管道的缓冲区。
请帮帮我。 提前谢谢。
答案 0 :(得分:1)
我使用Flash徽章AIR应用程序做了一些技巧。和C#控制台应用.. 我们可以将params发送到AIR应用程序。来自BADGE并使用以下方式接收:
protected function onInit(event:FlexEvent):void{
NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE, onBrowserInvoke);}
protected function onBrowserInvoke(e:BrowserInvokeEvent):void{
//reading args
var a:String = e.arguments[0];
//Now we can run *.exe from windows using:
if(NativeProcess.isSupported)
{
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = File.applicationDirectory.resolvePath("ExecutableApp.exe");
nativeProcessStartupInfo.arguments.push(a);
var process:NativeProcess = new NativeProcess();
//dispatched when the process will be finished
process.addEventListener(NativeProcessExitEvent.EXIT,onProcessDone);
//run
process.start(nativeProcessStartupInfo);
}
else Alert.show("Native process are not supported\nPrinter settings may be wrong!");
}
这是一个很长的路,但肯定有效!至少对我来说它有用。