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

просто халтура (а может и нет:]):

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

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

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

EDIT : из-за возможного недопонимания я имею в виду локальные приложения - на вашем компьютере win / mac / linux - я хотел бы (в процессе изучения языка) отследить, что приложения, которые я использую больше всего, возможно, создайте небольшой график?

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

Ответы [ 3 ]

3 голосов
/ 25 января 2010

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

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

2 голосов
/ 17 мая 2010

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

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

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

1 голос
/ 25 января 2010

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

  1. Основное приложение может отправить netConnection.send (mainConnection, "sendMessageBack") работает по таймеру que
  2. дочернее приложение сработает функция sendMessageBack netConnection.send (childConnection, "setStatusOk") .
  3. основное приложение может проверить (в той же очереди таймера, что и 1), был ли вызван setStatusOk, если не снимать Event.SystemActiveAppChange
...