2010-11-25 2 views
4

.app/.exe 파일을 하드웨어 장치에 대한 브리지로 사용하는 Air 응용 프로그램을 작성하고 있습니다.Adobe Air App을 사용하여 .app/.exe 파일을 묶고 실행하십시오.

이상적으로, Air 앱 설치 프로그램과 함께 실행 파일을 포함시키고 Air 앱과 함께 외부 프로그램을 실행하고 싶습니다.

1) 가능합니까?
2) 어떤 OS 특정 파일을 실행할지 결정하는 방법은 무엇입니까?

편집 : OK, 위의 매우 어렵지 않았다 :

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) 

하지만 왜 내가이 오류 메시지를받을 수 있나요?

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

.app 확장명은 유효하지 않습니까?

+1

.app 확장자없이 시도 했습니까? file.resolvePath ("Mac/echoTestMac")와 같은가요? AIR에서는 NativeProcess를 처음 사용하지 않았지만 일반적으로 Mac OS에서 응용 프로그램의 확장을 생략하는 것이 일반적입니다. –

+1

라스, 입력 해 주셔서 감사합니다. 그러나 앱 확장이 작동하는 것 같습니다 : trace (file.exists) => true - 그럼 분명히 뭔가를 찾습니다 ... – dani

답변

7

실제로 .app는 폴더입니다. 내부 실행 파일에 액세스하려면 참조해야합니다. YourApp.app/Contents/MacOS/YourApp

+0

Beautiful! 고맙습니다 :) – dani