PowerPoint가 실행 되었는지 무한정 검사를 하고
PowerPoint의 SlideShow가 실행 되었는지 무한정 검사를하고
SlideShow가 종료 되었는지 무한정 검사
namespace HowRunProcessCheck
{
class Program
{
/// <summary>
/// PowerPoint MainWindowTitle명 (Office 2007)
/// </summary>
const string powerPointName = "Microsoft PowerPoint -";
/// <summary>
/// PowerPoint MainWindowTitle명 (Office 2007)
/// </summary>
const string slideName = "PowerPoint 슬라이드 쇼";
/// <summary>
/// PowerPoint
/// </summary>
Process powerPoint;
/// <summary>
/// PowerPoint Slide
/// </summary>
Process slide;
static void Main(string[] args)
{
Program test = new Program();
test.TestRunProcessCheck();
}
/// <summary>
/// Test
/// </summary>
private void TestRunProcessCheck()
{
this.powerPoint = StartCheckProcess(powerPointName);
Console.WriteLine("시작 {0}", this.powerPoint.MainWindowTitle);
this.slide = StartCheckProcess(slideName);
Console.WriteLine("시작 {0}", this.slide.MainWindowTitle);
CheckAlive(this.slide);
Console.WriteLine("종료 {0}", this.slide.MainWindowTitle);
Console.ReadKey();
}
/// <summary>
/// Process가 죽으면 Return
/// </summary>
/// <param name="pro"></param>
private void CheckAlive(Process pro)
{
while (CheckProcess(pro.MainWindowTitle) != null)
{
}
}
/// <summary>
/// MainWindowTitle이 title로 시작하는 Process 무한 검사
/// </summary>
/// <param name="title"></param>
/// <returns></returns>
private Process StartCheckProcess(string title)
{
while (true)
{
Process pro = CheckProcess(title);
if (pro != null)
{
return pro;
}
System.Threading.Thread.Sleep(1000);
}
}
/// <summary>
/// MainWindowTitle이 title로 시작하는 Process 검사
/// </summary>
/// <param name="title"></param>
/// <returns></returns>
private Process CheckProcess(string title)
{
Process[] processes = Process.GetProcesses();
foreach (Process pro in processes)
{
if (pro.MainWindowTitle.StartsWith(title))
{
return pro;
}
}
return null;
}
}
}
'.Net > Winform' 카테고리의 다른 글
VBScript Intellisense 기능 및 동적 코드 실행 (0) | 2012.08.03 |
---|---|
C# ActiveScript 언어 동적으로 실행시키기 (0) | 2012.08.02 |
C# 코드 난독화하기 (4) | 2012.07.05 |
C# Keyboard, Mouse Hooking (0) | 2012.06.28 |
C# 지정한 폴더 감시하기 (0) | 2012.06.27 |