본문 바로가기

hayee Study/코딩_c#

[C#] 작업스케줄러

반응형

안녕하세요 hayee 입니다.

 

c# 으로 프로그램 개발 시 pc 부팅 시 프로그램 자동 실행, 프로세스 종료 시 실행 시키기 등 특정 동작들을 등록시키기 위해 작업 스케줄러를 사용할 수 있습니다.

 

참고로 TaskScheduler 클래스를 사용하기 위해선 Microsoft.Win32.TaskScheduler.dll 을 참조해야 한다.

 

[실행 방법]

- 검색창 작업 스케줄러를 검색

- 제어판  관리도구 → 작업 스케줄러 

반응형

◈ 예제 소스

public void CreateScheduler()
{
    try
    {
        using (TaskService ts = new TaskService())
        {
            if (ts.RootFolder.Tasks.Exists("TastScheduler"))
            {
            	ts.RootFolder.DeleteTask("TastScheduler");                       
            }

            TaskDefinition td = ts.NewTask();

            // 일반
            td.RegistrationInfo.Description = "작업 스케줄러 설명";
            td.Principal.RunLevel = TaskRunLevel.Highest;       // 가장 높은 수준 권한.
            td.Settings.Compatibility = TaskCompatibility.V2_3; // 구성 설정 Window 10

            // [트리거]
            LogonTrigger login = new LogonTrigger();
            login.Enabled = true;
            td.Triggers.Add(login);

            // 동작
            td.Actions.Add(new ExecAction("프로그램 경로"));

            // 조건
            td.Settings.MultipleInstances = TaskInstancesPolicy.IgnoreNew; 
            td.Settings.DisallowStartIfOnBatteries = false;        
            td.Settings.StopIfGoingOnBatteries = false;     
            td.Settings.RunOnlyIfNetworkAvailable = false;  
            td.Settings.IdleSettings.RestartOnIdle = false;  
            td.Settings.AllowHardTerminate = true;          
            td.Settings.StartWhenAvailable = false;                            

            // 설정
            td.Settings.ExecutionTimeLimit = TimeSpan.Zero; // 다음 시간 이상 작업이 실행되면 중지.
            td.Settings.IdleSettings.StopOnIdleEnd = true;  

            // 스케줄러 등록
            ts.RootFolder.RegisterTaskDefinition(@"TastScheduler", td);
        }
    }
    catch (Exception ex)
    {
    	//Log.log("CreateScheduler() Error " + ex.Message);
    }
}

 

 

 

 

# 틀린 부분이 있다면 댓글 부탁드립니다. #

# 댓글 달아주시면 늦게라도 블로그 방문하도록 할게요! 감사합니다. #

 

 

 

728x90
반응형