추가 NameSpace  
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
{
}

}

+ Recent posts