프로세스 중에 사용자가 7za.exe 창을 닫지 못하도록하는 방법이 있습니까? 폴더 추출을 진행해야하지만 사용자가 창을 닫으면 C# 프로그램에서 오류가 발생할 수 있습니다.프로세스가 완료 될 때까지 7za.exe 프로그램을 닫지 마십시오.
public partial class ExtractForm : Form
{
public ExtractForm()
{
InitializeComponent();
}
private void ExtractForm_Load(object sender, EventArgs e)
{
InitializeEvent();
}
private void InitializeEvent()
{
Zip.LogFileExtract +=WriteExtractProgression;
}
private void WriteExtractProgression(string text)
{
if (InvokeRequired)
{
this.BeginInvoke(new Action<string>(WriteExtractProgression), text);
}
else
{
txtExtract.Text += text;
txtExtract.SelectionStart = txtExtract.TextLength;
txtExtract.ScrollToCaret();
txtExtract.Refresh();
}
}
}
가공 방법 :
ExtractForm extractForm = new ExtractForm();
extractForm.Show();
Process zipProcess = new Process();
using (zipProcess)
{
zipProcess.StartInfo.UseShellExecute = false; //Show the cmd.
zipProcess.StartInfo.RedirectStandardOutput = true;
zipProcess.OutputDataReceived += (object sender, DataReceivedEventArgs outline) =>
{
LogFileExtract(outline.Data);
// Add args to a TextBox, ListBox, or other UI element
};
zipProcess.StartInfo.CreateNoWindow = true;
zipProcess.StartInfo.FileName = pathToZip;
zipProcess.StartInfo.Arguments = args;
zipProcess.Start();
zipProcess.BeginOutputReadLine();
zipProcess.WaitForExit(); //Wait the process to finish completely.
}
extractForm.Close();
}
http://stackoverflow.com/questions/5377423/hide-console-window-from-process-start-c-sharp이 답변을 제공합니까? – Will
아니요 콘솔 창을 원하지만 사용자가 직접 콘솔 창을 닫는 것을 원하지 않습니다. –
그렇다면 당신은 아마 솔입니다. – Will