public void StartSuspended() { Debug.Assert(_process == null); var info = new ProcessStartInfo("java"); info.Arguments = " -jar -Dmode=cli -Dfile.encoding=UTF-8 C:\\bcomp.jar"; info.RedirectStandardInput = true; info.RedirectStandardOutput = true; info.UseShellExecute = false; info.CreateNoWindow = true; info.StandardOutputEncoding = Encoding.UTF8; _process = new Process(); _process.StartInfo = info; _process.Start(); string code = _sourceFile.GetContents(); _process.StandardInput.WriteLine("asm"); _process.StandardInput.WriteLine(code); _process.StandardInput.WriteLine("end"); string line = ""; while (!line.StartsWith("Программа начинается с адреса")) { line = _process.StandardOutput.ReadLine(); } ExecutionState = new BasmExecutionState( programCounter: uint.Parse(Regex.Match(line, "Программа начинается с адреса\\s*([0-9A-Fa-f]+)").Groups[1].Value, NumberStyles.HexNumber) ); ProcessId = new AD_PROCESS_ID() { ProcessIdType = (uint)enum_AD_PROCESS_ID.AD_PROCESS_ID_SYSTEM, dwProcessId = (uint)_process.Id }; }