当我尝试使用Arguments时:
console.StartInfo.Arguments = "/c ping -t google.co.id";
它有效。 Ping输出显示在richtextbox中。
但是当我尝试使用这个参数时:
console.StartInfo.Arguments = "/c C:\\Plink\\Plink.exe -v -C -N -D 1080 -P 443 myuser@123.123.123 -pw mypassword";
富文本框不显示任何内容。 但当我检查任务经理时,我看到Plink已经在运行。
我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace output_cmd
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
delegate void UpdateConsoleWindowDelegate(String msg);
Process console = null;
StreamWriter consoleStreamWriter = null;
private void btnCreateConsole_Click(object sender, EventArgs e)
{
console = new Process();
console.StartInfo.FileName = "cmd";
console.StartInfo.Arguments = "/c C:\\Plink\\Plink.exe -v -C -N -D 1080 -P 443 myuser@123.123.123 -pw mypassword";
console.StartInfo.UseShellExecute = false;
console.StartInfo.CreateNoWindow = true;
console.StartInfo.RedirectStandardInput = true;
console.StartInfo.RedirectStandardOutput = true;
console.StartInfo.RedirectStandardError = true;
console.OutputDataReceived += new DataReceivedEventHandler(ConsoleOutputHandler);
console.Start();
consoleStreamWriter = console.StandardInput;
console.BeginOutputReadLine();
console.BeginErrorReadLine();
btnCreateConsole.Enabled = false;
}
private void btnTerminate_Click(object sender, EventArgs e)
{
if (!console.HasExited)
{
console.Kill();
console.Dispose();
console = null;
btnCreateConsole.Enabled = true;
}
}
private void UpdateConsoleWindow(String message)
{
if (txtConsoleWindow.InvokeRequired)
{
UpdateConsoleWindowDelegate update = new UpdateConsoleWindowDelegate(UpdateConsoleWindow);
txtConsoleWindow.Invoke(update, message);
}
else
{
txtConsoleWindow.AppendText(message);
}
}
private void ConsoleOutputHandler(object sendingProcess,
DataReceivedEventArgs recieved)
{
if (!String.IsNullOrEmpty(recieved.Data))
{
UpdateConsoleWindow(recieved.Data + "\r\n");
}
}
}
}
我该如何解决这个问题?
更新:对不起,我错了在这里写目录分隔符:D 但这仍然无法解决我的问题