从命令行运行7zip的C#应用程序-如何阻止7zip打开命令行窗口?

从命令行运行7zip的C#应用程序-如何阻止7zip打开命令行窗口?,c#,7zip,C#,7zip,我的C#应用程序从命令行运行7zip,我将窗口设置为隐藏,但每次我让7zip执行某项操作时,命令行窗口仍然会弹出并消失,我认为是7zip exe本身报告了输出 有没有办法抑制这种情况 string strCmdText = "\"C:/Program Files/7-zip/7z.exe\" e \"" + listBox1.Items[i].ToString() + "\" -o\"" + label1.Text + "\" EMM*.zip RFE*.zip -r -y"; Process

我的C#应用程序从命令行运行7zip,我将窗口设置为隐藏,但每次我让7zip执行某项操作时,命令行窗口仍然会弹出并消失,我认为是7zip exe本身报告了输出

有没有办法抑制这种情况

 string strCmdText = "\"C:/Program Files/7-zip/7z.exe\" e \"" + listBox1.Items[i].ToString() + "\" -o\"" + label1.Text + "\" EMM*.zip RFE*.zip -r -y";
Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";
            cmd.StartInfo.RedirectStandardInput = true;
            cmd.StartInfo.RedirectStandardOutput = true;
            cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            cmd.StartInfo.UseShellExecute = false;
            cmd.StartInfo.CreateNoWindow = true;
            cmd.Start();

            cmd.StandardInput.WriteLine(strCmdText);
            cmd.StandardInput.Flush();
            cmd.StandardInput.Close();
            cmd.WaitForExit();

您的代码使用一个隐藏窗口打开cmd.exe,该窗口称为7-zip.exe,默认窗口(默认情况下可见)。 如果可以,直接调用7-zip.exe即可

Process cmd = new Process();
cmd.StartInfo.FileName = @"C:/Program Files/7-zip/7z.exe";
cmd.StartInfo.Arguments = "e \"" + listBox1.Items[i].ToString() + "\" -o\"" + label1.Text + "\" EMM*.zip RFE*.zip -r -y";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.Start();
cmd.WaitForExit();

您的代码使用一个隐藏窗口打开cmd.exe,该窗口称为7-zip.exe,默认窗口(默认情况下可见)。 如果可以,直接调用7-zip.exe即可

Process cmd = new Process();
cmd.StartInfo.FileName = @"C:/Program Files/7-zip/7z.exe";
cmd.StartInfo.Arguments = "e \"" + listBox1.Items[i].ToString() + "\" -o\"" + label1.Text + "\" EMM*.zip RFE*.zip -r -y";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.Start();
cmd.WaitForExit();

您可以使用此NuGet库来避免通过命令行进行处理:这已经有一段时间没有更新了,但它使用了7Zip网站上的SDK,在那里您可以找到更新的C#示例:您可以使用此NuGet库来避免通过命令行进行处理:这已经有一段时间没有更新了,但它使用7Zip网站上的SDK,在那里你可以找到更新的C#示例: