查了下資料,寫了陳述句,能實作功能,但是很尷尬的是,會跳出cmd的黑視窗,必須關了,c#才有顯示
代碼如下,請問如何解決?
if (e.KeyCode == Keys.Enter)
{
//if (CmdProcess == null)
{
CmdProcess = new Process();//創建行程物件
CmdProcess.StartInfo.FileName = "cmd.exe";//設定需要執行的命令
// startInfo.Arguments = "/C " + command;//“/C”表示執行完命令后馬上退出
CmdProcess.StartInfo.UseShellExecute = false;//不使用系統外殼程式啟動
CmdProcess.StartInfo.RedirectStandardInput = true;//可以重定向輸入
CmdProcess.StartInfo.RedirectStandardOutput = true;
CmdProcess.StartInfo.RedirectStandardError = true;
CmdProcess.StartInfo.CreateNoWindow = false;//不創建視窗
CmdProcess.Start();---------到了這一步,螢屏就會彈出cmd的黑視窗,然后不走下去了,必須關掉才能繼續
}
CmdProcess.StandardInput.AutoFlush = true;
CmdProcess.StandardInput.WriteLine(TextBoxCmdInput.Text);
TextBoxCMDShow.Text += "\r\n" + TextBoxCmdInput.Text;
TextBoxCMDShow.Text += "\r\n" + CmdProcess.StandardOutput.ReadToEnd();
CmdProcess.StandardInput.WriteLine("exit");
if (CmdProcess != null)
{
CmdProcess.WaitForExit();
CmdProcess.Close();
}
//SearchRealization(FuzzySearch: true);
e.Handled = true;
}
}
uj5u.com熱心網友回復:
Process process = new Process
{
StartInfo =
{
FileName = "cmd.exe",
UseShellExecute = false, //不使用shell啟動
RedirectStandardInput = true, //讓cmd接受標準輸入
RedirectStandardOutput = false, //不想聽cmd講話所以不要他輸出
RedirectStandardError = true, //重定向標準錯誤輸出
CreateNoWindow = true, //不顯示視窗
}
};
process.Start();
//向cmd視窗發送輸入資訊 后面的&exit告訴cmd運行好之后就退出
process.StandardInput.WriteLine($"start {url}&exit");
process.StandardInput.AutoFlush = true;
process.WaitForExit();//等待程式執行完退出行程
process.Close();
關鍵就是:RedirectStandardOutput = false, //不想聽cmd講話所以不要他輸出
uj5u.com熱心網友回復:
RedirectStandardOutput = false, 用了,后面的readtoend就沒有回傳了CmdProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
CmdProcess.Start();
CmdProcess.StandardInput.WriteLine(TextBoxCmdInput.Text + "&exit");//+ "&exit"
CmdProcess.StandardInput.AutoFlush = true;
TextBoxCMDShow.Text += "\r\n" + TextBoxCmdInput.Text;
TextBoxCMDShow.Text += "\r\n" + CmdProcess.StandardOutput.ReadToEnd();
TextBoxCmdInput.Text + "&exit" 用了這個,可以運行了,但是還是有黑視窗閃出,這個如何解決?
uj5u.com熱心網友回復:
CreateNoWindow = true, //不顯示視窗uj5u.com熱心網友回復:
謝謝,看到了,這樣就不顯示了。$"start {url}&exit"
這個能詳細解釋下么?
TextBoxCmdInput.Text + "&exit"
我用的是這個指令,會在視窗里面顯示 &exit,很丑陋
不加,就死機了。
uj5u.com熱心網友回復:
為啥用cmd?轉載請註明出處,本文鏈接:https://www.uj5u.com/net/244974.html
標籤:C#
上一篇:我已經奔潰,找不到問題,求解
