Red de conocimiento informático - Espacio del host - Quiero usar C# para llamar al comando netstat -a para mostrarlo en un formulario. ¿Puedes darme el código fuente completo?

Quiero usar C# para llamar al comando netstat -a para mostrarlo en un formulario. ¿Puedes darme el código fuente completo?

delegado público void DelReadStdOutput(resultado de cadena);

delegado público void DelReadErrOutput(resultado de cadena);

clase parcial pública Form1: Formulario

{

// 2. Definir eventos delegados

evento público DelReadStdOutput ReadStdOutput;

evento público DelReadErrOutput ReadErrOutput;

form1 público()

{

InicializarComponente();

Init()

}

Init privado vacío()

{

//3. Registra la función correspondiente para el evento delegado

ReadStdOutput = new DelReadStdOutput(ReadStdOutputAction);

ReadErrOutput = new DelReadErrOutput(ReadErrOutputAction) );

}

botón de anulación privada1_Click(remitente del objeto, EventArgs e)

{

// Inicia el proceso para ejecutar el comando correspondiente, en este caso ping.

// No pude obtener el resultado con -a, pero probé -an

RealAction("NETSTAT", "-an");

}

private void RealAction(string StartFileName, string StartFileArg);

{

// Inicia el proceso para ejecutar el comando correspondiente, en este caso ping .

CmdProcess.StartInfo.FileName = StartFileName; // Comando

CmdProcess.StartInfo.Arguments = StartFileArg; // Parámetros

CmdProcess.StartInfo.CreateNoWindow = true ; // No crear una nueva ventana

CmdProcess.StartInfo.UseShellFile = @"C:\indows\System32";

CmdProcess.StartInfo.FileName = StartFileName;

CmdProcess.StartInfo.Arguments = StartFileArg; // Parámetro WindowStyle = ProcessWindowStyle.Hidden;

CmdProcess.OutputDataReceived = new DataReceivedEventHandler(p_OutputDataReceived); ErrorDataReceived = new DataReceivedEventHandler(p_ErrorDataReceived);

CmdProcess.StartInfo.RedirectStandardError = true; // Salida de error de redirección.

CmdProcess.BeginOutputReadLine();

CmdProcess.BeginErrorReadLine();

// Si los comentarios están activados, el comando se ejecutará de forma sincrónica, en este caso. Por ejemplo, ejecute el comando de forma asincrónica con el evento Exited.

// CmdProcess.WaitForExit();

}

private void p_OutputDataReceived(remitente del objeto, DataReceivedEventArgs e)

{ p>

if (e.Data ! = null)

{

// 4. Llamada asincrónica, es necesario llamar

a esto. Invocar(ReadStdOutputEventArgs )Invocar(ReadStdOutput, nuevo objeto[] { e.Data "ss " e.Data.Length}

}

}

}

p>

private void p_ErrorDataReceived(objeto remitente, DataReceivedEventArgs e)

{

if (e.Data !Data ! = null)

{

this.Invoke(ReadErrOutput, nuevo objeto[] { e.Data }

}

}

}

private void ReadStdOutputAction(resultado de cadena)

{

this.Invoke(ReadErrOutput, new object[] { e.Data });

}

datos !textBoxShowStdRet.AppendText(resultado "\r\n");

}

}

privado void ReadErrOutputAction(resultado de cadena)

{

this.textBoxShowStdRet.AppendText(resultado "\r\n");

}