从C#Windows桌面应用程序执行命令提示符查询

时间:2017-08-30 21:43:08

标签: c# windows winforms

我在以前版本的Visual Studio 2013 Pro - C#Forms App中运行此代码,它运行得非常好。 但是我现在已经下载了Visual Studio 2017社区,相同的代码不再起作用了。它只是打开命令提示符空白窗口而不执行任何命令。

enter image description here

此外,它现在甚至都没有要求任何管理员权限。

任何人都可以建议,我应该如何在社区版中使用它。 感谢。

        Process p1 = new Process();
        p1.StartInfo.FileName = "cmd.exe";
        p1.StartInfo.Arguments = "java";
        p1.StartInfo.UseShellExecute = false;
        p1.StartInfo.RedirectStandardOutput = true;
        p1.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
        p1.StartInfo.CreateNoWindow = false;
        p1.StartInfo.Verb = "runas";
        p1.Start();
        p1.StandardOutput.ReadToEnd();

1 个答案:

答案 0 :(得分:1)

你的论点似乎缺少/ c

p1.StartInfo.Arguments =“/ c java”;

  Process p1 = new Process();
        p1.StartInfo.FileName = "cmd";
        p1.StartInfo.Arguments = "/c java";
        p1.StartInfo.UseShellExecute = false;
        p1.StartInfo.RedirectStandardOutput = true;
        p1.StartInfo.RedirectStandardError = true;
        p1.StartInfo.Verb = "runas";

        p1.Start();

        StringBuilder sb = new StringBuilder();
        while (!(p1.StandardOutput.EndOfStream))
             sb.Append($"{ p1.StandardOutput.ReadLine()}");


        while (!(p1.StandardError.EndOfStream))
            sb.Append($"{ p1.StandardError.ReadLine()}");

        p1.WaitForExit();