2013-09-26 4 views
0

Для моей программы мне нужно декомпилировать swf ... Я использую для этого flasm!StandardOutput Process

для моей первой попытки я экспортировать результат в текстовый файл и читать этот TXT

string newPath = Path.GetTempPath() + @"DasLol.txt"; 

     if(File.Exists(newPath)) 
     { 
      File.Delete(newPath); 
     } 

     string dasCmd = "/c flasm.exe -d \"" + path + "\" > " + newPath; 

     ProcessStartInfo procStartInfo = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe", dasCmd); 

     Process flasm = new Process {StartInfo = procStartInfo}; 

     flasm.Start(); 
     flasm.WaitForExit(); 
string dasString = File.ReadAllText(newPath); 

но как переадресовать де StandardOutput для чтения непосредственно мой «dasString» в консоли? (и не использовать временный txt)

+0

См http://stackoverflow.com/questions/285760/how-to-spawn-a-process-and-capture-its-stdout-in-net –

ответ

0

Разрешить перенаправление стандартного вывода, дождаться завершения процесса, прочитать его.

procStartInfo.UseShellExecute = false; 
procStartInfo.RedirectStandartOutput = true; 
... 
flasm.WaitForExit(); 
string output = flasm.StandartOutput.ReadToEnd(); 
+0

не работает !! if procStartInfo.RedirectStandardOutput = true; Появляется консоль , но команда ("dasCmd") не выполняется. (PS новый dasCmd; string dasCmd = "/ c flasm.exe -d \" "+ path +" \ "";) – user1740962

+0

Что значит, что он не выполнен? –

Смежные вопросы