我创建了一个用于在CMD中运行命令的进程。
var process = Process.Start("CMD.exe", "/c apktool d app.apk");
process.WaitForExit();
如何在不显示CMD窗口的情况下运行此命令?
我创建了一个用于在CMD中运行命令的进程。
var process = Process.Start("CMD.exe", "/c apktool d app.apk");
process.WaitForExit();
如何在不显示CMD窗口的情况下运行此命令?
您可以使用WindowsStyle属性来指示该进程是在最大化、最小化、普通(既非最大化也非最小化)窗口中启动,还是不可见的
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
将您的代码更改为以下内容,因为在初始化对象时启动了进程,所以在设置属性之后启动的进程不会被识别。
Process proc = new Process();
proc.StartInfo.FileName = "CMD.exe";
proc.StartInfo.Arguments = "/c apktool d app.apk";
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
他在初始化对象时启动了进程,因此属性(在启动进程后设置)将不被识别。
- Daniel Abou Chleih根据各位的评论和回答,您的程序存在几个问题。我在此尝试解决所有问题。
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "apktool";
//join the arguments with a space, this allows you to set "app.apk" to a variable
psi.Arguments = String.Join(" ", "d", "app.apk");
//leave it to the application, not the OS to launch the file
psi.UseShellExecute = false;
//choose to not create a window
psi.CreateNoWindow = true;
//set the window's style to 'hidden'
psi.WindowStyle = ProcessWindowStyle.Hidden;
var proc = new Process();
proc.StartInfo = psi;
proc.Start();
proc.WaitForExit();
主要问题:
cmd /c
试一试:
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.WaitForExit();
process.StartInfo.UseShellExecute = false;
吗? - AlezisProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "dcm2jpg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
翻译为:进程.启动信息.窗口样式 = 进程窗口样式.隐藏。 - Daniel Abou Chleih