private void AddTaskOptions(ITaskDefinition iTaskDefinition, ScheduledJobOptions jobOptions) { _TASK_RUNLEVEL variable; iTaskDefinition.Settings.DisallowStartIfOnBatteries = !jobOptions.StartIfOnBatteries; iTaskDefinition.Settings.StopIfGoingOnBatteries = jobOptions.StopIfGoingOnBatteries; iTaskDefinition.Settings.WakeToRun = jobOptions.WakeToRun; iTaskDefinition.Settings.RunOnlyIfIdle = !jobOptions.StartIfNotIdle; iTaskDefinition.Settings.IdleSettings.StopOnIdleEnd = jobOptions.StopIfGoingOffIdle; iTaskDefinition.Settings.IdleSettings.RestartOnIdle = jobOptions.RestartOnIdleResume; iTaskDefinition.Settings.IdleSettings.IdleDuration = ScheduledJobWTS.ConvertTimeSpanToWTSString(jobOptions.IdleDuration); iTaskDefinition.Settings.IdleSettings.WaitTimeout = ScheduledJobWTS.ConvertTimeSpanToWTSString(jobOptions.IdleTimeout); iTaskDefinition.Settings.Hidden = !jobOptions.ShowInTaskScheduler; iTaskDefinition.Settings.RunOnlyIfNetworkAvailable = !jobOptions.RunWithoutNetwork; iTaskDefinition.Settings.AllowDemandStart = !jobOptions.DoNotAllowDemandStart; iTaskDefinition.Settings.MultipleInstances = this.ConvertFromMultiInstances(jobOptions.MultipleInstancePolicy); TaskScheduler.IPrincipal principal = iTaskDefinition.Principal; if (jobOptions.RunElevated) { variable = _TASK_RUNLEVEL.TASK_RUNLEVEL_HIGHEST; } else { variable = _TASK_RUNLEVEL.TASK_RUNLEVEL_LUA; } principal.RunLevel = variable; }
private ScheduledJobOptions CreateJobOptions(ITaskDefinition iTaskDefinition) { ITaskSettings settings = iTaskDefinition.Settings; TaskScheduler.IPrincipal principal = iTaskDefinition.Principal; return(new ScheduledJobOptions(!settings.DisallowStartIfOnBatteries, settings.StopIfGoingOnBatteries, settings.WakeToRun, !settings.RunOnlyIfIdle, settings.IdleSettings.StopOnIdleEnd, settings.IdleSettings.RestartOnIdle, this.ParseWTSTime(settings.IdleSettings.IdleDuration), this.ParseWTSTime(settings.IdleSettings.WaitTimeout), !settings.Hidden, principal.RunLevel == _TASK_RUNLEVEL.TASK_RUNLEVEL_HIGHEST, !settings.RunOnlyIfNetworkAvailable, !settings.AllowDemandStart, this.ConvertToMultiInstances(settings))); }