- 1 year ago
Creating Real-Time Input & Output Stream To Command Prompt in C#
To create a real-time input and output stream to the command prompt in C#, you can use the Process
class from the System.Diagnostics
namespace. Here's an example:
csharpusing System;
using System.Diagnostics;
class Program
{
static void Main()
{
// Create a new ProcessStartInfo object
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
// Create a new Process object with the specified start info
Process cmdProcess = new Process
{
StartInfo = startInfo
};
// Start the process
cmdProcess.Start();
// Get the input and output streams
StreamWriter inputStream = cmdProcess.StandardInput;
StreamReader outputStream = cmdProcess.StandardOutput;
// Write to the command prompt
inputStream.WriteLine("echo Hello, Command Prompt!");
inputStream.WriteLine("dir");
// Read and display the output
string output = outputStream.ReadToEnd();
Console.WriteLine(output);
// Close the streams and wait for the process to exit
inputStream.Close();
outputStream.Close();
cmdProcess.WaitForExit();
}
}
In this example, we create a new ProcessStartInfo
object with the necessary configuration, specifying that we want to redirect the standard input and output streams. We then create a Process
object with the ProcessStartInfo
, start the process, and obtain the input and output streams using StandardInput
and StandardOutput
.
We can then write commands to the command prompt by writing to the inputStream
, read the output from the outputStream
, and display it.
Finally, we close the input and output streams and wait for the process to exit.
Please note that this code snippet assumes you're running it in a console application and that you have appropriate permissions to execute cmd.exe
.