58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
|
using System;
|
|||
|
using System.Diagnostics;
|
|||
|
|
|||
|
namespace Thousandto.DIY
|
|||
|
{
|
|||
|
public class CmdOption
|
|||
|
{
|
|||
|
public static void DoCommand(string argument)
|
|||
|
{
|
|||
|
DoCommand(argument, "", null);
|
|||
|
}
|
|||
|
|
|||
|
public static void DoCommand(string argument, string workDir, EventHandler finishCallback)
|
|||
|
{
|
|||
|
if(!argument.StartsWith("/c"))
|
|||
|
{
|
|||
|
argument = "/c" + " " + argument;
|
|||
|
}
|
|||
|
DoCommand("cmd.exe", argument, workDir, finishCallback);
|
|||
|
}
|
|||
|
|
|||
|
public static void DoCommand(string excuteFileName, string argument, string workDir, EventHandler finishCallback)
|
|||
|
{
|
|||
|
ProcessStartInfo start = new ProcessStartInfo(excuteFileName, argument);
|
|||
|
start.WorkingDirectory = workDir;
|
|||
|
start.CreateNoWindow = false;
|
|||
|
start.ErrorDialog = true;
|
|||
|
start.UseShellExecute = true;
|
|||
|
|
|||
|
|
|||
|
start.RedirectStandardInput = false;
|
|||
|
start.RedirectStandardOutput = false;
|
|||
|
start.RedirectStandardError = false;
|
|||
|
//start.StandardOutputEncoding = System.Text.UTF8Encoding.UTF8;
|
|||
|
//start.StandardErrorEncoding = System.Text.UTF8Encoding.UTF8;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
var compileProcess = new Process();
|
|||
|
compileProcess.EnableRaisingEvents = true;
|
|||
|
|
|||
|
if (finishCallback != null)
|
|||
|
{
|
|||
|
compileProcess.Exited += finishCallback;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
compileProcess.WaitForExit();
|
|||
|
}
|
|||
|
//_compileProcess.ErrorDataReceived += ErrorDataReceived;
|
|||
|
//_compileProcess.OutputDataReceived += OutputDataReceived;
|
|||
|
|
|||
|
compileProcess.StartInfo = start;
|
|||
|
compileProcess.Start();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|