Получить список запущенных процессов, получить активный процесс (и его приложение) Flex / AIR

просто по-быстрому (а может и нет :)):

Можно ли каким-то образом получить список запущенных приложений / процессов и, работая в фоновом режиме, проверить, какой процесс активен?

Кроме того, если каким-то образом ответ был положительным, можно ли отреагировать на изменение активного окна / приложения, как если бы это было событие, или привязать к нему настраиваемое событие (например, Event.SystemActiveAppChange)?

Спасибо за ответы, а также за указатели.

РЕДАКТИРОВАТЬ: из-за вероятного недопонимания я имею в виду локальные приложения - на вашей машине win / mac / linux - я хотел бы (в процессе изучения языка) отслеживать, какие приложения Я использую больше всего, может быть, сделать небольшой график?

Итак, суть в следующем: в приложении AIR, разработанном в FLEX, я хотел бы получить / перечислить все запущенные приложения / процессы, а также то, какое из них активно (на ПК / Mac / Linux пользователя)


person Adam Kiss    schedule 25.01.2010    source источник


Ответы (3)


К сожалению, это невозможно, поскольку AIR не имеет доступа ни к информации о процессе, ни к показателям производительности системы.

Ваша единственная надежда - создать другую службу в .NET или Objective C (например, не кросс-платформенную - при условии, что это требование), которая может предоставлять информацию о процессе вашему приложению AIR через локальный NetConnection. Я не уверен насчет Java, но, возможно, вам удастся обойтись с Mono.

person Richard Szalay    schedule 25.01.2010
comment
К сожалению нет. Если вы работаете в Windows, вы можете попытаться запустить и запустить службу .NET для предоставления данных вашему приложению AIR. Вам нужен .NET API: Process.GetProcesses () - msdn.microsoft.com /en-us/library/1f3ys1f9.aspx. Не уверен насчет OSX / Linux, извините! - person Richard Szalay; 25.01.2010
comment
Ну, это похоже на очередную урезанную идею - я сейчас не в настроении учить другой язык: D - person Adam Kiss; 26.01.2010

это то же самое, что я исследую!

Хотя я думаю, что до сих пор нет встроенных API-интерфейсов для этого, с новым AIR 2.0 вы можете использовать NativeProcess, чтобы вы могли очищать вывод таких инструментов командной строки, как top или ps в OSX. На самом деле у меня есть доказательство того, что концепция запущена и работает, что позволяет приложению AIR отслеживать использование ЦП внутри приложения с помощью ActionScript, хотя это немного медленнее, не может опускаться ниже частоты выборки 1,5 секунды.

Но не хочу слишком сильно отвлекаться, я еще не мог узнать, какие инструменты командной строки можно использовать для получения активного приложения / окна, но я просто открыл вопрос, чтобы узнать, что может быть обходным путем для вашего вопроса : Какая командная строка инструменты, которые я могу использовать для получения текущего активного приложения / окна на каждой платформе?

person dain    schedule 16.05.2010
comment
Тогда отличные новости :) Я буду следить :) - person Adam Kiss; 17.05.2010

Вы можете использовать класс newconnection для проверки связи взад и вперед, пока приложения активны: http://www.adobe.com/livedocs/flex/3/langref/flash/net/NetConnection.html

  1. основное приложение может отправлять netConnection.send (mainConnection, "sendMessageBack"), работающий по очереди таймера
  2. дочернее приложение сработает в функции sendMessageBack netConnection.send (childConnection, "setStatusOk").
  3. основное приложение может проверить (в той же очереди таймера, что и 1), был ли вызван setStatusOk, если не стрелять в Event.SystemActiveAppChange
person Eran    schedule 25.01.2010
comment
Хммм, спасибо, но здесь возможно недоразумение:] Пожалуйста, прочтите edit. - person Adam Kiss; 25.01.2010