2016-10-18 1 views
0
내가 어떤 부분에 약간의 공기 데스크톱 응용 프로그램 작업입니다

는 unity3d 기본 과정
어도비 에어 바탕 화면은 버튼이 유니티는 표준 출력

var processArgs:Vector.<String > = new Vector.<String>(); 
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
nativeProcessStartupInfo.workingDirectory = File.applicationDirectory.resolvePath("bin"); 
nativeProcessStartupInfo.executable = File.applicationDirectory.resolvePath("bin/unityApp.exe"); 

var process:NativeProcess = new NativeProcess(); 
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); 
process.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, onOutputData); 
process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData); 
process.addEventListener(NativeProcessExitEvent.EXIT, onExit); 
process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError); 
process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError); 

process.start(nativeProcessStartupInfo); 
process.standardInput.writeUTFBytes(processArgs + "\n"); 



function onOutputData(event:ProgressEvent):void 
{ 
    trace("Got: ", process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); 
} 

function onErrorData(event: ProgressEvent):void 
{ 
    trace("ERROR -", process.standardError.readUTFBytes(process.standardError.bytesAvailable)); 

} 

function onExit(event:NativeProcessExitEvent):void 
{ 
    trace("Process exited with ", event.exitCode); 
} 

function onIOError(event: IOErrorEvent):void 
{ 
    trace(event.toString()); 
} 

로와 일치 응용 프로그램에 함께 내장 된 다른 응용 프로그램을 실행 읽기 표준 출력을 보내서 Air에서 읽을 수 있도록되어 있습니다. 내 문제는 내가 출력을 보내 연합에서 C#을 방법을 사용하지만 난

Debug.log("text"); 
System.Console.Write("text"); 
System.Console.WriteLine("text"); 

내가 표준 보내 연합 사용해야 할 기능을 요구하고 그래서 단합과 C# 새로운 오전을 사용 공기 읽어 본 적이 있다는 것입니다 공기가 읽을 수있는 출력
감사합니다. AIR 응용 프로그램으로

+0

을 멀리 유니티에서 : 유니티에서

nativeProcessStartupInfo.arguments[0] = "-nolog"; 

는 콘솔에 어떤 문자열을 보내는 코드를 추가 ** stdout **을 보내고 AIR에서 해당 텍스트를받을 수 있습니까? Unity가 다른 프로그램에서 ** stdin/out **을 허용 할 수 있습니까? 어쨌든 .. 가능하다면 매우 간단한 테스트 가능한'.exe' (Unity가 만들어졌다)를 제공한다. 클릭 할 때 어떤 청취 프로세스가 읽을 수 있도록 출력을 보낸다. 어쩌면 당신을 시험 할 수 있을까요? –

+0

그게 바로 문제입니다. 단결로 표준 출력을 보내는 사람은 아무도 없습니다. 그래서 그렇게 할 수있는 방법이 있는지 물어 봅니다. 질문에 언급 된 기능을 사용하여 로그 또는 시스템 콘솔에 텍스트를 보낼 버튼이있는 간단한 응용 프로그램을 만들었습니다. –

답변

0

은 시작 인수를 추가 : 방금 .exe`있는`코딩 된 C#을 사용,

System.IO.StreamWriter standardOutput = new System.IO.StreamWriter(System.Console.OpenStandardOutput()); 
standardOutput.Write("Hello!"); 
standardOutput.AutoFlush = true; 
System.Console.SetOut(standardOutput); 
+0

도움을 주셔서 감사합니다, 나는 그것을 시도하고 작동하는지 확인합니다 –

관련 문제