2010-11-25 6 views
4

Je crée une application Air qui utilise un fichier .app/.exe comme passerelle vers des périphériques matériels.Grouper et exécuter le fichier .app/.exe avec Adobe Air App

Idéalement, je voudrais inclure l'exécutable avec l'installateur de l'application Air et lancer le programme externe avec l'application Air.

1) Est-ce possible?
2) Comment décider du fichier spécifique au système d'exploitation à lancer?

EDIT: OK, ce qui précède n'a pas été très difficile:

var file:File = File.applicationDirectory; 
file = file.resolvePath("src/assets/NativeApps"); 

if (Capabilities.os.toLowerCase().indexOf("win") > -1) { 
    file = file.resolvePath("Windows/echoTestWin.exe"); 
} 
else if (Capabilities.os.toLowerCase().indexOf("mac") > -1) { 
    file = file.resolvePath("Mac/echoTestMac.app"); 
} 

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

Mais pourquoi dois-je obtenir ce message d'erreur?

ArgumentError: Error #3214: NativeProcessStartupInfo.executable does not specify a valid executable file.

L'extension .app n'est-elle pas valide?

+1

Avez-vous essayé sans l'extension .app? Comme file.resolvePath ("Mac/echoTestMac")? Je n'ai jamais utilisé moi-même le composant NativeProcess dans AIR, mais en général il est courant d'omettre l'extension pour les applications sous Mac OS. –

+1

Lars, merci pour l'entrée. Il semble toutefois que l'extension de l'application fonctionne: trace (fichier.exists) => true - donc il trouve évidemment quelque chose ... – dani

Répondre

7

Le fichier .app est en fait un dossier. Pour accéder à l'exécutable à l'intérieur, vous devez faire référence YourApp.app/Contents/MacOS/YourApp

+0

Beautiful! JE VOUS REMERCIE :) – dani