只是一个快速(或可能不是:)]:
是否有可能以某种方式获取正在运行的应用程序/进程的列表,并且在后台运行时,检查哪个进程处于活动状态?
此外 - 如果不知何故,答案是肯定的,是否有可能对活动窗口/应用程序的更改作出反应,就好像它是Event,或绑定到它自定义事件(例如Event.SystemActiveAppChange
)?
感谢您的答案以及指示。
编辑:由于可能的误解,我的意思是本地应用程序 - 在你的win / mac / linux机器上 - 我想(在学习语言的过程中)跟踪我最常用的应用程序,可能会制作一个小图表吗?
所以,重点是:在FLEX中开发的AIR应用程序中,我想获取/列出所有正在运行的应用程序/进程,以及哪一个处于活动状态(在用户的PC / Mac / Linux上)
答案 0 :(得分:3)
不幸的是,这是不可能的,因为AIR既不能访问流程信息也不能访问系统性能指标。
您唯一的希望是在.NET或Objective C中创建另一项服务(如同非跨平台一样 - 假设这是一项要求),可以通过本地NetConnection
向您的AIR应用程序提供流程信息。我不确定Java,但你可能能够逃脱Mono。
答案 1 :(得分:2)
这与我正在调查的事情完全一样!
虽然我认为仍然没有内置的API来实现这一点,但使用新的AIR 2.0可以使用NativeProcess,因此您可以抓取命令行工具的输出,例如 top 或OSX上的 ps 。我实际上有一个概念验证和运行,这使得AIR应用程序可以使用ActionScript监视应用程序内部的CPU使用情况,尽管它有点慢,不能低于1.5秒的采样频率。
但是不要太过分离,我还不知道可以使用哪些命令行工具来获取活动的应用程序/窗口,但我刚刚打开了一个问题来查找,这可能是解决方法对于您的问题:Which command line tools can I use to get the currently active application / window on each platform?
答案 2 :(得分:1)
您可以使用newconnection类在应用程序处于活动状态时来回ping: http://www.adobe.com/livedocs/flex/3/langref/flash/net/NetConnection.html