2010-11-25 4 views
4

Ich baue eine Air-App, die eine .app/.exe-Datei als Brücke zu Hardwaregeräten verwendet.ADAP/EXE-Datei bündeln und mit Adobe Air App ausführen

Im Idealfall möchte ich die ausführbare Datei mit dem Air App Installer einschließen und das externe Programm zusammen mit der Air App starten.

1) Ist das möglich?
2) Wie entscheiden Sie, welche OS-spezifische Datei gestartet werden soll?

EDIT: OK, das oben war nicht sehr schwierig:

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) 

Aber warum bekomme ich diese Fehlermeldung?

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

Ist nicht die Erweiterung .app gültig?

+1

verweisen. Haben Sie versucht, ohne die Erweiterung .app? Wie file.resolvePath ("Mac/echoTestMac")? Ich habe nie die NativeProcess-Sachen in AIR selbst benutzt, aber im Allgemeinen ist es üblich, die Erweiterung für Anwendungen in Mac OS wegzulassen. –

+1

Lars, danke für die Eingabe. Es scheint jedoch, dass die App-Erweiterung funktioniert: trace (file.exists) => true - damit es offensichtlich etwas findet ... – dani

Antwort

7

Die .app ist eigentlich ein Ordner. Um auf die ausführbare Datei zuzugreifen, müssen Sie auf YourApp.app/Contents/MacOS/YourApp

+0

Schön! DANKE :) – dani