Является ли Adobe AIR хорошим выбором для создания инструмента мониторинга использования приложений? - PullRequest
2 голосов
/ 12 марта 2011

Я искал ответы на некоторые вопросы о Adobe AIR в его текущей версии, и мне интересно, мог бы кто-нибудь из вас сообщить мне, могу ли я делать все эти вещи с помощью приложения Adobe AIR, поскольку я знаю, что они их ограничения:

  • Сидеть в системном трее в Windows и как маленький значок на самой верхней панели в OS X при работе в фоновом режиме? Требуется ли разное программирование для поддержки обеих платформ?

  • Находясь в фоновом режиме, получать уведомления о том, какое приложение получает фокус и когда? В идеале, я бы также получил название документа, URL-адрес веб-сайта (если у нас браузер с вкладками), на котором находится фокус, и т. Д. Я пытаюсь создать инструмент, похожий на RescueTime, который говорит вам, как сколько времени вы потратили на каждое приложение или веб-сайт.

  • У вас есть специальная общесистемная горячая клавиша (например, Alt + Space), чтобы при нажатии приложение фокусировалось (не находясь в фоновом режиме)?

  • Показывать уведомления (ненавязчивые всплывающие окна в стиле Growl) для определенных событий?

  • Уведомление о неактивности системы (всплывающая заставка, пользователи "спят" на компьютере и т. Д.)

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 марта 2011

да.все это можно выполнить с помощью приложения AIR и NativeApplication и NativeProcess .

, чтобы выполнить однократную запись и развернуть на Windows и Mac.в какой ОС работает ваше приложение, используя свойства NativeApplication:

  • NativeApplication.supportsDockIcon (Mac OS X)
  • NativeApplication.supportsSystemTrayIcon (Windows)

или вы можете более точно определить ОС следующим образом:

//Resoslve Operating System
if  (Capabilities.os.toLowerCase().indexOf("win") > -1)
    {
    //Native Processes for Windows  
    }
    else if (Capabilities.os.toLowerCase().indexOf("mac") > -1)
    {
    //Native Processes for Mac OS X
    }
    else if (Capabilities.os.toLowerCase().indexOf("linux") > -1)
    {
    //Native Process for Linux
    }
    else
    {
    throw new Error("Unresolved Operating System");
    }

, в то время как при таком подходе вы будете писать приложение только один раз, приложения AIR, использующие специфичные для системы процессы (собственные процессы), должны публиковаться с собственнымУстановщики для каждой целевой ОС, поскольку эти собственные процессы различны для каждой ОС.

Для некоторых собственных процессов (таких как чтение данных из последовательного порта или драйвера принтера) может потребоваться небольшое вспомогательное приложение, возможно написанное на C ++,для использования в качестве прокси-сервера, контролируемого AIR для связиобъединение между AIR и целевым процессом.

далее: Взаимодействие с собственным процессом

0 голосов
/ 12 марта 2011
  1. Да, системный трей поддерживается унифицированно
  2. Нет, AIR не знает других приложений.
  3. Нет глобальной поддержки горячих клавиш
  4. Да
  5. Нет

AIR создан не для системного программирования, он имеет веб-корни. Пункты 2, 3 и 5 могут быть выполнены с помощью встроенного помощника, но это требует системного программирования для каждой целевой платформы.

...