cmd.exe运行时正在加载栏
本文关键字:加载 exe 运行时 cmd | 更新日期: 2023-09-27 18:13:10
我要做的事情:
将命令传递给.cmd,在命令执行时显示加载栏,在进度栏满后退出cmd并显示消息框
发生了什么:
当我点击发送命令的按钮时,应用程序挂起,命令被执行,但CMD在完成后永远不会退出,所以应用程序保持冻结状态(直到我手动关闭CMD.exe(。我也不知道如何在命令执行时显示加载栏。当加载栏已满时,我将显示消息框。
我的代码:
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.WorkingDirectory = @"C:'"
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
p.StandardInput.WriteLine(Command_That's_Called);
^在button_Click事件中执行。
我尝试过的东西:
p.WaitForExit(); // still hangs
还有线程,但我收到了一个错误,比如"从创建线程以外的线程访问"。
关于CMD不关闭,我只会在一定时间后杀死它,但命令完成的时间长短取决于各种因素。
要在CMD进程执行完命令后退出,请尝试在进程参数的开头添加"/C":
p.StartInfo.Arguments = "/C (your arguments)";
如果在命令提示符中键入"cmd/?",您会发现"/C:执行字符串指定的命令,然后终止"。
关于添加LoadingBar,您需要了解BackgroundWorker类