我试图在Windows7中启动一个命令行可执行程序作为后台进程,但它不起作用。我的AIR应用程序是一个本机安装程序应用程序: myAIRApp.exe。
我已经将myApp.exe与我的AIR应用程序捆绑在一起,这样当它第一次启动时,应用程序就会将myApp.exe复制到applicationStorageDirectory应用程序中)。复制是成功的,但它拒绝自己启动。在尝试启动它之前,复制已完成。我没有在任务管理器中显示为正在运行的进程,因此,依赖于myApp.exe在后台运行的AIR应用程序会失败。
如果我在applicationStorageDirectory中手动双击复制的myApp.exe,它将在Windows Command Processor中打开,所以文件没有问题。这段代码在我的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);你知道为什么这可能不起作用吗?
发布于 2010-10-13 15:11:36
也许我在AIR文档中遗漏了什么,或者对Windows安全没有足够的了解,但似乎Windows上的可执行文件不能从applicationDirectory以外的任何目录启动。
从applicationDirectory启动.exe是可行的。(在Windows XP和Windows 7上测试)
https://stackoverflow.com/questions/3914964
复制相似问题