.net - txt - stream c# ejemplo
¿Cómo leer el buffer de la consola en VBNET? (1)
Utilizar
StandardOutput.Read
Creo que la respuesta es la misma que para su otra pregunta. ¿ Ejecutar un proceso de línea de comandos y obtener el resultado mientras el proceso todavía se está ejecutando?
Edite, está solicitando una aplicación de formulario para leer la salida de la consola. Entonces, tengamos una aplicación de consola ():
Module Module1
Sub Main()
While True
'' data = Console.ReadKey.KeyChar
Dim Generator As System.Random = New System.Random()
Console.Write(Generator.Next(0, 100) & " ")
Threading.Thread.Sleep(1000)
End While
End Sub
End Module
Genera un espacio separado de los números uno por segundo. Ahora la aplicación de formularios. Tengamos un formulario con un TextBox
multilínea llamado txtResult
y un button
cmdStart
:
Private Sub cmdStart_Click(sender As Object, e As EventArgs) Handles cmdStart.Click
Dim ProcInfo As New ProcessStartInfo With
{.FileName = "DataApp.exe", .RedirectStandardOutput = True, .UseShellExecute = False}
Dim proc As Process = Process.Start(ProcInfo)
While Not proc.HasExited
Dim a As String = ChrW(proc.StandardOutput.Read)
If a = " " Then
txtResult.Text &= vbCrLf
Else
txtResult.Text &= a
End If
Threading.Thread.Sleep(100)
Application.DoEvents()
End While
End Sub
Escribe los números en el TextBox uno por línea. No hay API mágica pero funciona.
He visto un ejemplo de C # usando la función de la API de ConsoleRead, pero cuando traté de traducirlo a VBNET recibí muchos errores, también en otros sitios como pinvoke, el ejemplo único también es C #, no puedo encontrar ningún buen información para VBNET de la función de la API de ConsoleRead (si existe una forma de leer el búfer de la consola sin APIS, entonces no tengo ni idea).
También probé esta clase de lector de búfer de consola para VBNET ( http://pastebin.com/XYxakDTV ) pero arroja una excepción no controlada con un mensaje como este "Controlador no válido".
¿Alguien podría ilustrarme a mí y a todas las demás personas con un ejemplo para VBNET de cómo iniciar un proceso desde una aplicación GUI (WindowsForm) para leer los resultados de la consola para recuperar caracteres / cadenas?
ACTUALIZAR:
No estoy seguro, pero creo que un proceso lanzado (utilizando System.Process Class) no asigna la consola a la aplicación, así que creo que todos los ejemplos que se ven aquí en MSDN no me pueden ayudar: http://msdn.microsoft .com / en-us / library / system.console.aspx