32 votes

Adobe AIR pour exécuter le programme

Je voudrais appuyer sur un bouton à partir d'une application Adobe AIR et exécuter un programme installé. Par exemple, j'aurais un bouton nommé "Start Winamp". Lorsque l'on appuie sur ce bouton, Winamp.exe devrait démarrer directement... Je ne veux pas qu'une ligne de commande soit exécutée, je veux seulement qu'un exe démarre. Ou... est-ce la même chose ? S'il vous plaît, faites-moi savoir si c'est possible.

Merci.

65voto

JD Isaacks Points 14540

Avec AIR 2.0, vous pouvez désormais :

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);

}

Vous devez également l'ajouter à votre fichier de descripteurs.

<supportedProfiles>extendedDesktop</supportedProfiles>

11voto

dirkgently Points 56879

Il n'y a pas de moyen direct de le faire. Essayez CommandProxy .

Lisez très attentivement l'article du blog. Vous devez réellement créer deux projets différents : un exécutable OS natif et une application AIR. L'exécutable natif lance votre application AIR. L'application AIR demande à son tour à l'exécutable de traiter les demandes au niveau du système d'exploitation.

Téléchargez la source à partir de Code Google et créez deux projets : un Visual Studio/Mono pour l'exemple d'exe C# et un autre pour l'application AIR. Ici est un lien qui décrit comment mettre en place le premier.

Dans le fichier MXML principal de votre application AIR, vous devez effectuer les opérations suivantes :

  • Crear un CommandProxy ajouter quelques écouteurs d'événements, pour la détection de la connexion, et Command réponse et erreur.

  • Connectez-vous à l'exe natif via un connect appelez

  • Dans le gestionnaire d'événements pour connect créer une nouvelle Command par exemple ScreenshotCommand et l'exécuter (via CommandProxy.execute méthode)

... et c'est tout !

J'espère que cela vous aidera.

4voto

Yar Points 25421

La réponse est en deux parties. Premièrement, si vous devez absolument exécuter un fichier .exe, la seule solution est d'utiliser un proxy de commande. Personnellement, l'utilisation d'un proxy dans .Net/Mono est un peu exagérée. Je ne connais pas Mono, mais demander à vos utilisateurs d'installer .Net et AIR les ferait fuir à peu près tous. De plus, si je devais demander aux utilisateurs d'installer Mono, pourquoi ne pas simplement écrire l'interface utilisateur en Mono et en finir ?

Vous pourriez écrire un proxy de commande simple en Ruby qui serait vraiment multiplateforme et peu compliqué en 5 minutes environ (je viens de le faire, si vous voulez le code, commentez-moi ici et je le posterai). Si vous voulez contrôler le processus après son lancement, c'est un effort plus sérieux. Pour la distribution, etc., je pense que Ruby serait plus facile.

D'autre part , Vérifiez cette idée . Jeff suggère d'utiliser une requête URL à partir d'AIR. En gros, si votre navigateur l'interprète correctement, vous êtes prêt à partir. Le code ressemble à ceci

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

Je pense qu'avec un peu de créativité (avec les types Mime, notamment), cette deuxième solution pourrait même fonctionner pour Winamp (par exemple, une liste de lecture ou autre).

Bonne chance et merci pour cette question, qui est probablement un doublon, mais Google n'a trouvé que celle-ci, donc vous avez gagné :)

3voto

user106085 Points 59

Je pense que FluorineFx fait ce que vous voulez : http://aperture.fluorinefx.com/?p=5

3voto

AIR 2.0 aura cette capacité.

Il devrait sortir en version bêta d'ici la fin de l'année (2009) et être commercialisé au premier semestre 2010.

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

API de processus natif À partir d'AIR 2, les développeurs auront accès à une API de processus native qui permettra aux applications d'invoquer et de communiquer avec des applications natives sur la machine locale. Afin de préserver la nature multiplateforme du format de fichier .air, les applications qui tirent parti de l'API de processus native doivent être déployées sous forme d'installateurs natifs tels que .exe et .dmg. Le SDK du moteur d'exécution AIR prendra en charge la génération d'installateurs natifs de base.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X