我試圖將運行出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
這樣做......謝謝。 –