Использование параметров командной строки в AIR приложениях

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

Итак, приступим. Оригинальная статья называется How do I use command line arguments with my AIR application? .

Многие приложения можно запускать с определенными ключами, переданными из командной строки, зачастую это является очень удобным. AIR также предоставляет такую возможность посредством подписки на событие InvokeEvent. Данное событие содержит аргументы, которые были переданы при запуске или во время работы приложения.

Обработка события InvokeEvent
Для начала надо подписаться на это событие у экземпляра NativeApplication в нашем приложении. Это можно сделать как в MXML, так и c помощью ActionScript :
MXML:

<mx:WindowedApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    invoke="onInvoke(event)">
    ...
</mx:WindowedApplication>


* This source code was highlighted with Source Code Highlighter.

ActionScript :
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
При получении события список переданных аргументов находится в массиве arguments. Например, следующий код выводит список переданных ключей:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    invoke="onInvoke(event)">
    <mx:Script>
    <![CDATA[
        private function onInvoke(event:InvokeEvent):void
        {
            if(0!=event.arguments.length)
                for each (var argument:String in event.arguments)
                {
                    txtArguments.text+=argument+"\n";
                }
        }
     ]]>
  </mx:Script>
  <mx:Label text="Arguments:" x="0" y="0"/>
  <mx:TextArea id="txtArguments" x="0" y="26" width="100%" height="100%"/>
</mx:WindowedApplication>


* This source code was highlighted with Source Code Highlighter.
Если запустить приложение с ключами
TestAir.exe help --user=root
То результатом будет:

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

Установка RedMine как службы

Имеем работающий RedMine+MySQL (под ОС Windows), запускаемый из консоли. Надо установить RedMine как службу. Мои действия были следующими:
1) Если MySQL не установлен как служба, то

mysqld-nt.exe --install

2) Переходим в папку ruby/bin

ruby/bin>gem install mongrel --include-dependencies

Если будет ошибка типа этой “ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)”
То необходимо настроить прокси командой наподобие этой:

ruby/bin>set http_proxy=http://10.105.24.70:8080

3) При установке выбираем “3. mongrel 1.1.5 (x86-mswin32-60)”
4) Делаем

ruby\bin>gem install mongrel_service --include-dependencies

Выбираем
1. mongrel_service 0.3.4 (i386-mswin32)
1. win32-service 0.5.2 (mswin32)
5) Делаем

ruby\bin>mongrel_rails service::install -N RedMine -c "E:\wwwRedmine\RedmineLast\redmine-0.8.0" -p 3000 -e production

где
-N name это название устанавливаемой службы
-p NumPort это номер порта на котором будет запускаться служба

Вуаля, и мы имеем службу RedMine ;)

Яндекс.Метрика

Код отслеживания Google Analytics

Powered by Blogger