我正在尝试在Windows 7中启动命令行可执行程序作为后台进程,但它无法正常工作。我的AIR应用程序是本机安装程序应用程序:myAIRApp.exe。
我已将myApp.exe与我的AIR应用程序捆绑在一起,因此当它第一次启动时,应用程序会将myApp.exe复制到applicationStorageDirectory(C:\ Users \ Administrator \ AppData \ Roaming \ myAIRApp \)。副本是成功的,但它拒绝自己发布。在尝试启动之前,副本已完成。我没有在任务管理器中显示为正在运行的进程,随后,我的AIR应用程序(依赖于myApp.exe在后台运行)失败。
如果我手动双击applicationStorageDirectory中复制的myApp.exe,它将在Windows命令处理器中打开,因此该文件没问题。代码也适用于我的Mac版本,但它不是启动.exe而是启动Mac版本作为后台进程,在手动启动时在终端中打开。
该进程不接受任何参数,并且不要求我的AIR应用程序直接与启动的.exe后台进程通信。它只需要运行。
AIR应用程序是在Mac OS X中编写的,我正在使用Parallels Desktop使用ADT编译Windows本机安装程序并测试应用程序。
var myApp:File = File.applicationStorageDirectory.resolvePath("myApp.exe");
var myAppProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
myAppProcessStartupInfo.executable = myApp;
myAppProcess = new NativeProcess();
myAppProcess.start(myAppProcessStartupInfo);
为什么这可能不起作用的任何想法?
答案 0 :(得分:1)
也许我错过了AIR文档中的内容,或者对Windows安全性知之甚少,但似乎Windows上的可执行文件无法从applicationDirectory以外的任何目录启动。
从applicationDirectory启动.exe工作。 (在Windows XP和Windows 7上测试)