我正在构建一个Air应用程序,它使用.app / .exe文件作为硬件设备的桥梁。
理想情况下,我希望将可执行文件包含在Air应用程序安装程序中,并与Air应用程序一起启动外部程序。
1)这可能吗?
2)如何确定要启动哪个OS特定文件?
编辑:好的,上面的内容并不是很难:
var file:File = File.applicationDirectory;
file = file.resolvePath("src/assets/NativeApps");
if (Capabilities.os.toLowerCase().indexOf("win") > -1) {
file = file.resolvePath("Windows/echoTestWin.exe");
}
else if (Capabilities.os.toLowerCase().indexOf("mac") > -1) {
file = file.resolvePath("Mac/echoTestMac.app");
}
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
var process = new NativeProcess();
process.start(nativeProcessStartupInfo)
但为什么我会收到此错误消息?
ArgumentError:错误#3214:NativeProcessStartupInfo.executable未指定有效的可执行文件。
.app扩展名不是有效吗?
答案 0 :(得分:7)
.app实际上是一个文件夹。要访问内部的可执行文件,您必须引用YourApp.app/Contents/MacOS/YourApp
答案 1 :(得分:1)
有关于执行外部程序的帖子:Adobe AIR to execute program
您当然可以检测操作系统:http://www.uibuzz.com/?p=1330
还可以创建特定于操作系统的本机安装程序。