我有以下内容:
<body>
<script>
var myAIRFile = new air.File('C:/Program Files (x86)/Windows NT/Accessories/Wordpad.exe');
var myProcess = new air.NativeProcess();
var myStartup = new air.NativeProcessStartupInfo();
myStartup.executable = myAIRFile;
myProcess.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, myOutputData);
myProcess.start(myAIRFile);
function myOutputData(myEvent){
alert('success!');
}
</script>
</body>
我添加了
<supportedProfiles>extendedDesktop</supportedProfiles>
到Application.xml,所以我知道支持NativeProcess。 但我得到了:
TypeError:错误#1034:类型强制失败:无法将flash.filesystem :: File @ 60dfdc1转换为flash.desktop.NativeProcessStartupInfo。
我知道C:/ Program Files(x86)/ Windows NT / Accessories / Wordpad.exe存在,因为我可以将其粘贴到资源管理器中。 也许我必须逃避斜线或其他事情。
答案 0 :(得分:2)
您将文件传递给myProcess。我相信你需要通过myStartup。即,myProcess.start(myStartup)。
答案 1 :(得分:1)
再深入研究一下,我发现你将错误的参数类型传递给NativeProcess的start()方法
MyProcess.start()期望一个类型的参数:NativeProcessStartupInfo
所以你需要传递myStartUp变量。但我认为你需要首先将myAirFile传递给myStartUp的“可执行”属性。所以可能是这样的:
myStartup.executable = myAirFile;
myProcess.start(myStartup);
我还没有测试过这些。我将根据我阅读文档的方式进行讨论。