shellexec
или exec
и т.п. И это меня категорически огорчило. Потратив 3 часа на изучение вопроса в интернете узнал следующее:navigateURL
Этим методом мы натравливаем браузер на локальный файл и (если браузер достаточно умный) он предложит открыть нам этот файл в дефолтном приложении(для данного типа файла) .
Но тут все минусы на лицо: захотели Вы из AIR открыть doc-овский файл (или экселевский), а он запускает браузер. Браузер,в свою очередь, открывается, думает маленько и выкидывает окошко: Тут мне вот такое файло подсунули, чо с ним делать? Сохранять или открывать штоле?.
Не очень умный вопрос, если человек только что в приложении нажимал кнопку "хочу ОТКРЫТЬ этот файл". Ну и вообще, я бы не взялся гарантировать работы всей этой схемы на разных компах. А что делать если вам надо запустить batch-скрипт? Браузер(firefox) даже вопросов не задаёт - просто открывает вкладку с текстом скрипта вместо того, чтобы попытатся его запустить. И я его (firefox) понимаю :)
fscommand
. В AIR она не работает, хотя и компилится. Проверял сам. Если я не прав и чего-то не доглядел, поправьте.swing UI
и использовать AIR в качестве фронтенда приложения, а начинку оставить Java'вскую. Мне это было интересно, потому что как раз с джавой и надо было скооперироватся. Но до конца я ещё не разобрался с этой темой. Разберусь - напишу.P.S. Как правильно заметил nuba Merapi это реинкарнация Artemis project
Она оборачивает AIR-приложение в собственый загрузчик, который интегрируется c AirRuntime, т.е. на выходе вы получаете просто экзешник, которому ничего не надо, и пользователь даже не будет знать что такое AIR и его Runtime. Кроме того, он добавляет как раз тот функционал который мне был нужен, а именно: запуск внешних приложений с коллбэком по результату их выполнения.
Кроме того, есть возможность написать свою
win32 dll
, функции которой будут доступны в AIR приложении. А это, по сути, уже полная свобода действий внутри операционки(виндовой правда). Вот. Но! Cтоит это дело 500 баксов (или евро?). Это раз. И два. Я не смог всё это протестить (скачал бесплатную Try&Buy версию ). По каким-то там лицензионным заморочкам Shu не может включать в себя дистрибутив
AirRuntime
, поэтому, при завёртывании приложения оно как-то невнятно просит указать "путь к air runtime". Но какие бы я пути не указывал - ни один из них ему не нравился и процесс завершить не удавалось. Так я и не понял это баг или фича или лыжи не те или я...На написание серверка в C# у меня ушло полчаса, as-класса для взаимодействия - 10 минут. Плюс отладка всего этого дела в связке. В итоге время было потрачено меньше, чем на чтение статей по вопросу :)) Что даёт такое решение? Да всё! :) Хочешь юзай .NET из Air, хочешь Java, коннекться к COM-порту, форматируй финчестер :))) и т.д.
Если кому интересно могу все поделки повыкладывать .
З.Ы.
Выкладываю:
1)С# сервер
2) Пример посылки команды из AIR-приложения
socket=new Socket();
socket.connect("localhost",7777);
socket.writeUTFBytes("$run myextapp.exe;");
socket.flush();