我试图将运行出CMD提示的程序的输出复制到Windows剪贴板。将CMD输出复制到剪贴板
private void button1_Click(object sender, EventArgs e)
{
/*Relevant Code*/
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = String.Format("/k cd {0} && backdoor -rt -on -s{1} -p{2}", backdoorDir, pSN, sPPC);
p.Start();
p.WaitForExit();
string result = p.StandardOutput.ReadToEnd();
System.Windows.Forms.Clipboard.SetText(result);
}
如果我直接进入CMD这一点,应该是这样的:
第一个命令(改变目录):
cd C:\users\chris\appdata\roaming\backdoor
第二个命令(推出后门,一个cmd工具。):
backdoor -rt -on -sCCDXE -p14453
而当通过CMD做到这一点,我得到这个结果:
The backdoor password is: 34765
C:\users\chris\appdata\roaming\backdoor>
但是,运行我的C#代码时,这是一个被添加到我的剪贴板中的唯一的事情:
C:\users\chris\appdata\roaming\backdoor>
为什么不把它抓取“后门密码是:34765”这就像p.StandardOutput.ReadToEnd()
没有读取所有内容。
尝试使用'p.StartInfo.RedirectStandardError = true'和'p.StandardError.ReadToEnd()'代替 – Icemanind
这样做......谢谢。 –