Adobe AIR do wykonania programu

Chciałbym nacisnąć przycisk z aplikacji Adobe AIR i uruchomić jakiś zainstalowany program. Na przykład miałbym przycisk o nazwie "Start Winamp". Po naciśnięciu należy uruchomić Winampa.exe bezpośrednio...Nie chcę, żeby coś z linii poleceń zostało wykonane, chcę tylko, żeby uruchomił się exe. Or...is to to samo ? Proszę dać mi znać, jeśli to możliwe.

Dziękuję.

Author: Chris, 2009-03-23

10 answers

Nie ma na to bezpośredniego sposobu. Spróbuj CommandProxy .

Przeczytaj post na blogu bardzo uważnie. Naprawdę musisz utworzyć dwa różne projekty: natywny program wykonywalny systemu operacyjnego i aplikację AIR. Natywny plik wykonywalny uruchamia aplikację AIR. Aplikacja AIR z kolei żąda od programu wykonywalnego przetwarzania żądań na poziomie systemu operacyjnego.

Pobierz źródło z Google Code i stwórz dwa projekty-Visual Studio / Mono dla przykładowego C # exe i inny -- dla Zastosowanie powietrza. tutaj {[9] } jest link, który opisuje, jak skonfigurować pierwszy.

W głównym pliku MXML aplikacji AIR należy wykonać następujące czynności:

  • Utwórz obiekt CommandProxy, dodaj kilka detektorów zdarzeń w celu wykrycia połączenia oraz odpowiedź i błąd Command.

  • Połączenie z natywnym exe poprzez connect wywołanie

  • W obsłudze zdarzenia dla connect, Utwórz Nowy Command np. ScreenshotCommand i wykonaj go (poprzez CommandProxy.execute metoda)

... i to wszystko!

Mam nadzieję, że to pomoże.
 11
Author: dirkgently,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-26 03:10:49

Z AIR 2.0 możesz teraz:

if(NativeProcess.isSupported)
{
    var file:File = File.desktopDirectory;
    file = file.resolvePath("StyleLookupold.exe");

    var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
    nativeProcessStartupInfo.executable = file;
    var process:NativeProcess = new NativeProcess();

    process.start(nativeProcessStartupInfo);

}

Musisz również dodać to do pliku deskryptora.

<supportedProfiles>extendedDesktop</supportedProfiles> 
 65
Author: JD Isaacks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-17 15:25:43

Odpowiedź składa się z dwóch części. Jeden, jeśli naprawdę musisz uruchomić .plik exe, jedynym wyjściem jest użycie polecenia proxy. Osobiście, używanie jednego w. Net/Mono jest trochę przesadzone. Nie znam Mono, ale poproszenie użytkowników o zainstalowanie. Net i AIR odstraszyłoby ich prawie wszystkich. Poza tym, jeśli miałem poprosić użytkowników o zainstalowanie Mono, dlaczego po prostu nie napisać UI W Mono i mieć z tym koniec...?

Możesz napisać proste polecenie proxy w Rubim, które naprawdę byłoby cross-platform i niski kłopot w około 5 minut (po prostu to zrobiłem, jeśli chcesz Kod komentarz mnie tutaj, a ja go opublikować). Jeśli chcesz kontrolować proces po jego uruchomieniu, jest to poważniejsze przedsięwzięcie. Do dystrybucji itp., Uważam, że Ruby byłoby łatwiejsze.

Z drugiej strony, sprawdź ten pomysł . Jeff sugeruje użycie żądania URL od AIR. Zasadniczo, jeśli twoja przeglądarka zinterpretuje ją poprawnie, jesteś gotowy do pracy. Kod wygląda następująco this

var request : URLRequest = new URLRequest('C:\\playlists\\test.m3u');

Myślę, że przy odrobinie kreatywności (szczególnie z typami Mime), to drugie rozwiązanie może działać nawet dla Winampa (np.., playlistę czy coś).

Powodzenia i dziękuję za pytanie, które pewnie jest dupą, ale Google znalazł tylko to, więc wygrałeś:)

 4
Author: Dan Rosenstark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-20 10:14:38

Myślę, że fluor robi to, co chcesz: http://aperture.fluorinefx.com/?p=5

 3
Author: user106085,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-05 13:56:22

AIR 2.0 będzie miał taką możliwość.

Oczekuje się, że ukaże się w wersji beta do końca roku (2009) i ukaże się w pierwszej połowie 2010 roku.

Http://blogs.adobe.com/air/2009/10/previewing_adobe_air_2_at_adob.html

Native process API Począwszy od środowiska AIR 2 programiści będą mieli dostęp do natywnego interfejsu API procesów, który umożliwi aplikacjom Wywoływanie aplikacji natywnych na maszynie lokalnej i komunikowanie się z nimi. W celu zachowania wielopoziomowego charakteru .format pliku air, aplikacje korzystające z natywnego interfejsu API procesów muszą być wdrożone jako natywne instalatory, takie jak .exe i .dmg. Zestaw środowisk wykonawczych środowiska AIR będzie zawierał obsługę generowania podstawowych natywnych instalatorów.

 3
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-09 23:10:23

Zobacz ten wpis na blogu: Uruchom plik exe z AIR

Krótkie podsumowanie:

" jeśli naprawdę potrzebujesz uruchomić zewnętrzny plików exe i nie ma innego sposobu rozwiązania Twojego problemu, wtedy będziesz upewnij się, że użytkownik uruchamia to kolejne oprogramowanie przed uruchomieniem Zastosowanie powietrza."

 1
Author: Assaf Lavie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-23 02:23:00

W tej chwili nie da się tego zrobić natywnie z powietrzem. Są jednak pewne opcje:

  • Shu
  • Red5 działa na localhost
  • Utwórz usługę, która działa na komputerze użytkownika i połącz się z nią za pomocą gniazd .
 1
Author: Rhys Causey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-23 02:26:44

Innym sposobem jest uruchomienie prostego serwera www na lokalnej maszynie (w tle) i wywołanie jego metod za pomocą HTTPService.

Serwer tła może być na przykład w Pythonie: http://fragments.turtlemeat.com/pythonwebserver.php

I może uruchamiać pliki wykonywalne i zapewniać funkcje, których AIR nie może.

To utrzymuje czysty kod Flex, ponieważ implementuje tylko interfejs REST i python (lub inny język) resztę pracy. Można również skorzystaj z używania Pythona jako interfejsu do bazy danych sqlite lub możesz uruchomić całe django jako serwer WWW.

Jedyną wadą jest to, że serwer musi być już uruchomiony na localhost .. i słuchanie jakiegoś portu (tj. 81). prawdopodobnie możesz to zrobić uruchamiając serwer przy starcie systemu.

To nie jest najlepszy sposób, ale w niektórych przypadkach może pomóc Twojemu projektowi, tak jak zrobił to dla mnie.

 1
Author: Redliner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-10 09:22:45

W mac os x, jeśli chcesz uruchomićplik aplikacji, następnie musisz zapisać następującą ścieżkę do pliku. (Załóżmy, że nazwa aplikacji to xxx)

if(NativeProcess.isSupported)
{
    //not correct
    //file = file.resolvePath("/Applications/xxx.app");

    //correct
    file = file.resolvePath("/Applications/xxx.app/Contents/MacOS/xxx");

    var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
    nativeProcessStartupInfo.executable = file;
    var process:NativeProcess = new NativeProcess();

    process.start(nativeProcessStartupInfo);

}
 0
Author: umut demirel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-27 13:45:29

Lub po prostu moja strona Tworzenie niestandardowego instalatora do nowej aplikacji Czytaj więcej

Http://board.flashkit.com/board/showthread.php?834579-Embed-exe-file-from-swf-to-write-to-local-directory

Bonus Tip: Zalecamy korzystanie z Enigma Virtual Box, ponieważ jest bezpłatny i jest bardzo dobry do wirtualizacji aplikacji lub Exe-Packer jak BoxedApp Packer, ale kosztuje bardzo dużo niż Enigma Virtual Box dzięki!

 0
Author: SourceSkyBoxer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-06 17:50:09