如何执行需要用户交互而不阻塞的隐藏进程?

时间:2017-05-09 19:36:58

标签: c# .net cmd command

请勿在阅读前标记为重复。 看了很多谷歌搜索后我发现了很多代码。所有的代码都没关系,但我的问题多一点。 假设,我可以使用下面的代码执行‘dir’命令,这给了我完美的输出:

static void Main(string[] args)
    {
     var str=ExecuteCommand("/c dir");
     //var str=ExecuteCommand("/c chkdsk C: /f/r/x");
     MessageBox.Show(str);
    }


static string ExecuteCommand(string cmd)
        {
            Process proc = new  Process();
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.Arguments = cmd;
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            proc.StartInfo.CreateNoWindow = true;
            proc.Start();
            string output = proc.StandardOutput.ReadToEnd();
            return output;
        }

但是,当我运行此命令“/c chkdsk C: /f/r/x”时,没有输出,因为它等待用户输入(y / n)。我想查看输出并从我的C#代码中发送y或n,而不是通过cmd控制台窗口发送。或者

0 个答案:

没有答案