using System.Diagnostics; [Process, ProcessStartInfo]
using System.Windows.Forms; [Application]
//Environment.SystemDirectory //system32폴더)
//Application.StartupPath //프로그램이 실행되는 폴더
/// <summary>
/// 인터넷 정보서비스를 중지
/// </summary>
public void IIS_stop()
{
Process processCmd = new Process();
ProcessStartInfo processInfo = new ProcessStartInfo();
try
{processInfo.FileName = "Iisreset"; //실행하려는 프로세스 이름
processInfo.Arguments = @" /stop"; //실행되는 프로세스의 인자값
processInfo.UseShellExecute = false; //운영체제 셸의 사용여부
processInfo.CreateNoWindow = true; //새창에서 실행 할 것인지 여부
processInfo.RedirectStandardInput = true;
processInfo.RedirectStandardError = false;
processInfo.RedirectStandardOutput = false;
processCmd.StartInfo = processInfo;processCmd.Start(); //프로세스의 시작
processCmd.WaitForExit(); //프로세스가 종료 될 때 까지무기한 대기한다.
processCmd.StandardInput.Flush();}
catch( Win32Exception ex )
{//Exception처리 :
Win32Exception에 해당되며, 상위 Exception으로 처리해도 된다.
}
finally
{processCmd.Close(); //프로세스연결 종료
}
}
// 실행인자를 수집한다.
public void Example()
{
string commandLineArgs = "";
foreach(string arg in Environment.GetCommandLineArgs())
{commandLineArgs += '"' + arg + '"' + " ";
}
commandLineArgs = commandLineArgs.Trim();Process mainProcess = null;
try
{ProcessStartInfo p = new ProcessStartInfo(this.executablePath);
p.WorkingDirectory = Path.GetDirectoryName(this.executablePath);
p.Arguments = commandLineArgs;
mainProcess = Process.Start(p);}
catch(Exception e)
{
}
if(mainProcess != null)
{
try
{mainProcess.WaitForExit(); // 실행시킨 프로세스가 종료될때까지 기다린다.
}
catch (Exception e)
{return;
}
if (mainProcess.ExitCode == 2) // 아마도 종료코드가 0 인게 정상종료일거다....
{
}
else
{
}
}