¡Hola de nuevo!
Quiero compartirles este código para ejecutar comandos y recibir la respuesta sin abrir la ventada "cmd" de Windows.
Estos son los pasos:
1) Crear un proyecto de C# en Visual Studio y agregar un textBox, un botón y un listBox al Form
2) Adaptar el siguiente código a tu proyecto:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SandBox
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if(textBox1.TextLength>0)
executeCommand(textBox1.Text);
}
private void executeCommand(String commandR)
{
try
{
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = "/c " + commandR,
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
updateStatusExecution("***COMMAND RECEIVED: " + commandR);
updateStatusExecution("***ANSWER:");
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
string line = proc.StandardOutput.ReadLine();
updateStatusExecution(line);
}
}
catch (Exception e)
{
updateStatusExecution("***Error while executing '" + commandR + "'");
updateStatusExecution("***Exception: '" + e.ToString());
updateStatusExecution("***Stack Trace: '" + e.StackTrace.ToString());
}
}
private void updateStatusExecution(String textR)
{
String currentDateTime = DateTime.Now.ToString(); ;
listBox1.Items.Add(currentDateTime + " - " + textR);
}
}
}
3) Presionar "Start" (F5) y escribir un comando en el textBox para probar.
Aquí está una captura de pantalla de mi código funcionando:
Espero hayan tenido una maravillosa Navidad y les deseo lo mejor para el 2015.
¡Saludos!
án.
Funciona. Gracias por el aporte
ResponderBorrarte felicito
ResponderBorrarExcelente aporte amigo!!
ResponderBorrarGracias amigo, que buen aporte
ResponderBorrarMuy bueno. Gracias
ResponderBorrar