我正在编写一个AIR应用程序,我想通过该应用程序打开本机进程“wordpad.exe”,并将AIR应用程序中生成的数据写入文档。
我的代码如下:
import flash.desktop.*;
import flash.errors.*;
import flash.events.*;
import flash.filesystem.*;
import flash.utils.*;
var nativeProcessStartupInfo:NativeProcessStartupInfo=new NativeProcessStartupInfo();
var executablePath:String="C:/Program Files/Windows NT/Accessories/wordpad.exe";
var str:String="Hello";
var file:File=new File(String(executablePath));
nativeProcessStartupInfo.executable=file;
var process=new NativeProcess();
process.start(nativeProcessStartupInfo);
process.standardInput.writeUTF(str);
wordpad应用程序打开时显示空白文档,但会生成错误 错误#2044:未处理的IOErrorEvent:.text =错误#3128:将数据写入NativeProcess.standardInput时出错。
并且在wordpad文档中没有任何内容。
请帮帮我。
提前致谢
答案 0 :(得分:0)
在this conversation查看@ MartinL的评论。同样,我认为可以使用StdIn / StdOut管理写字板,这意味着您无法使用AIR的NativeProcess
API传递输入。
但是,您可以编写一个C#控制台应用程序,作为一个轻型中间件,您可以<{>} 打开NativeProcess
,通过StdIn提交输入,并转发您的输入进入写字板。 .Net框架有SendKeys class可以做到这一点,虽然一些轻微的研究给我留下了痛苦的印象。
虽然这应该有用,但它确实听起来像一个kludge。你可以选择创建一个新的.rtf文件,用文本填充它,然后使用AIR的FileSystem.openWithDefaultApplication()方法以编程方式打开新文件吗?