2010-01-25 60 views
4

只是一個匆匆(或者也許不是:]):獲取正在運行的進程列表,獲取活動進程(和它的應用程序)的Flex/AIR

是否有可能獲得運行的應用程序/流程和莫名其妙的列表,而在後臺運行,檢查哪個進程處於活動狀態?

此外 - 如果以某種方式,答案是肯定的,是否有可能對活動窗口/應用程序的更改作出反應,就好像它是Event或綁定到自定義事件(例如Event.SystemActiveAppChange)?

謝謝你的答案以及指針。

編輯:由於可能missunderstanding,我的意思是當地應用 - 你贏/ MAC/Linux機器上 - 我想(在語言學習的過程)跟蹤哪些應用我用的最多,做一個小圖也許?

所以,問題是:對於AIR應用程序,在FLEX開發,我想獲取/列出所有正在運行的應用程序/進程,以及哪一個是活動的(用戶PC上的/ MAC/Linux)的

回答

3

不幸的是這是不可能的,因爲AIR可以訪問既不過程信息也不繫統性能指標。

您唯一的希望就是在.NET或Objective C中創建另一個服務(如在,不是跨平臺 - 假設這是一項要求),它可以通過本地NetConnection向AIR應用程序提供進程信息。我對Java不太確定,但是你也許能夠擺脫Mono。

+0

你能想到任何簡單的解決方案嗎? :D可能不是...... – 2010-01-25 19:52:51

+1

不幸的是,沒有。如果您使用的是Windows,則可以嘗試啓動並運行.NET服務以將數據提供給AIR應用程序。您需要的.NET API是Process.GetProcesses() - http://msdn.microsoft.com/en-us/library/1f3ys1f9.aspx。不確定關於OSX/Linux,對不起! – 2010-01-25 20:06:29

+0

好吧,這似乎是另一種想法減少 - 我現在沒有心情學習另一種語言:D – 2010-01-25 21:17:31

1

您可以使用newconnection類來ping來回,而應用程序是活的: http://www.adobe.com/livedocs/flex/3/langref/flash/net/NetConnection.html

  1. 主要的應用程序可以發送 netConnection.send(mainConnection,「sendMessageBack」)上的計時器闕
  2. 孩子跑 應用程序將tr igger sendMessageBack函數 netConnection.send(childConnection,「setStatusOk」) 。
  3. 主要的應用程序可以檢查(在相同的定時器闕如1)如果setStatusOk被稱爲如果沒有拍Event.SystemActiveAppChange
+0

嗯,謝謝,但這裏有可能的誤解:]請閱讀編輯。 – 2010-01-25 19:38:14

2

這是我正在調查的完全一樣的東西!

雖然我認爲還是沒有內置的API來做到這一點,與新的AIR 2.0,你可以使用NativeProcess,這樣你就可以刮的命令行工具的輸出像OSX 頂部PS。實際上,我有一個啓動和運行的概念證明,這使得AIR應用程序可以使用ActionScript監視應用程序內部的CPU使用情況,雖然速度有點慢,但不能低於1.5秒的採樣頻率。

但是不想離題太多,我還不知道哪些命令行工具可以用來獲取活動的應用程序/窗口,但是我只是打開一個問題來找出問題,這可能是你的問題的解決方法:Which command line tools can I use to get the currently active application/window on each platform?

+0

好消息然後:)我會跟進:) – 2010-05-17 09:37:55

相關問題