반응형
안녕하세요 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
반응형
'hayee Study > 코딩_c#' 카테고리의 다른 글
| [C#] AutoResetEvent, ManualResetEvent 에 대하여 (0) | 2023.10.08 |
|---|---|
| [C#] show, showDialog (모달리스와 모달 차이점) (2) | 2023.10.03 |
| [C#] ProgressBar 사용법. (+ 색상 변경하기) (5) | 2023.10.02 |
| [C#] ConcurrentQueue, Queue (2) | 2023.09.21 |
| [C#] ? 연산자 (조건부 연산자) (0) | 2023.09.18 |