2010-11-29 3 views
0

Je dois passer le "" au mm.exe qui s'exécute avec nativeprocess. Quand je passe "In From MIDI Yoke: 1" même en utilisant \ » au NativeProcess, il ne sera pas lancer l'application correctement et causé crash Quel mal ce codel'argument de nativeprocess a échoué

private function soundbank():void { 
       var argMidi5:Vector.<String> = new Vector.<String>; 
       var file:File = File.applicationDirectory.resolvePath("java/mm.exe"); 
       argMidi5.push('-g 0 -m winmidi -o midi.winmidi.device="In From MIDI Yoke: 1"'); 

       npSB = new NativeProcessStartupInfo(); 
       npSB.workingDirectory = File.applicationDirectory; 
       direct = String(File.applicationDirectory); 
       npSB.executable = file; 

       npSB.arguments = argMidi5; 
       npSBOut = new NativeProcess(); 
       npSBOut.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onSoundbank); 
       npSBOut.start(npSB); 
       trace(argMidi5); 
      } 

Répondre

2

.? les arguments sont passés sous forme de chaînes individuelles dans un vecteur, pas une seule chaîne

+0

Alors, quelle est la solution l'application nécessite « », sans elle, il ne fonctionnera pas – Proyb2

3

essayez ceci:.?.

argMidi5.push("-g"); 
argMidi5.push("0"); 
argMidi5.push("-m"); 
argMidi5.push("winmidi"); 
argMidi5.push("-o"); 
argMidi5.push("midi.winmidi.device=\"In From MIDI Yoke: 1\""); 
+0

Il WO pas accepter, donc j'ai réussi à le résoudre sans la double citation pour après le "=" – Proyb2