我正在用Flash Builder(Flex)开发一个AIR应用程序,我需要选择与计算机上的串口通信。所以我使用Serproxy来帮助我。
我希望在我的应用程序运行时能够启动serproxy.exe。我试过两种方法,但都不管用。
我已经使用ExtendedDesktop设置了supportedProfiles。
第一种方法:
var file:File = File.applicationDirectory.resolvePath("assets/serproxy.exe");
file.openWithDefaultApplication();
这将继续打开程序,但随后会立即将其关闭。不会引发任何错误。
第二种方法:
var file:File = File.applicationDirectory.resolvePath("assets/serproxy.exe");
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
var process:NativeProcess = new NativeProcess();
process.start(nativeProcessStartupInfo);
虽然通过研究发现这种方法是有效的,但它对我根本没有任何帮助。不会引发错误,也不会启动任何程序。
如果谁有任何想法,请让我知道!谢谢
3条答案
按热度按时间00jrzges1#
我已经解决了。我的问题是,由于SerProxy是用cmd.exe打开的,所以在保持文件打开时出现了一些问题,因为Windows喜欢自动关闭它。我创建了一个指向该文件的快捷方式,并为其目标添加了
然后我就可以通过以下方式运行快捷方式
Windows一直开着!
kr98yfug2#
我去年编写了一个名为Disco Desktop的应用程序,它使用TinkerProxy允许AIR通过USB串口与Arduino通信。我的
TinkerProxy
和TinkerProxyEvent
类发布在下面。该应用程序捆绑了serProxy并使用Native Process API来调用它,因此有两个不同的安装程序-Mac OS X和Windows。
TinkerProxy.as
扩展Socket,在运行时根据用户的输入编写serProxy配置文件,并作为后台进程启动基于该配置的serProxy。终端/cmd窗口永远不可见。注:调用
open()
,不要调用connect()
。安装器中包括一个Arduino的简单设备原理图和草图。TinkerProxy
:TinkerProxyEvent
:e4yzc0pl3#
使用URLRequest通过AIR启动应用程序