jejeje, el problema estaba en que el valor de la duración tenia que ser mayor que la del intervalo de repetición por eso me daba error. Lo he dejado así:
Espero que le sirva a alguien.
Salu2
Código (csharp) [Seleccionar]
....
TaskSchedulerClass scheduler = new TaskSchedulerClass();
scheduler.Connect(null, null, null, null);
ITaskDefinition task = scheduler.NewTask(0);
task.RegistrationInfo.Author = autor;
task.RegistrationInfo.Description = descripcion;
ITaskSettings settings = task.Settings;
settings.Enabled = true;
settings.Hidden = false;
try
{
switch (recurrencia)
{
case "horaria":
ITimeTrigger timeTrigger = (ITimeTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_TIME);
timeTrigger.Enabled = true;
timeTrigger.Id = nombre;
timeTrigger.StartBoundary = fecha.Substring(6, 4).ToString() + "-" + fecha.Substring(3, 2).ToString() + "-" + fecha.Substring(0, 2).ToString() +
"T" + hora;
if (fechaFin != string.Empty)
{
timeTrigger.EndBoundary = fechaFin.Substring(6, 4).ToString() + "-" + fechaFin.Substring(3, 2).ToString() + "-" + fechaFin.Substring(0, 2).ToString() +
"T" + horaFin;
}
if (checkBoxRepetir.Checked == true)
{
if (duracion != string.Empty)
timeTrigger.Repetition.Duration = duracion;
timeTrigger.Repetition.Interval = "PT" + repeticion.ToString() + "M";
}
break;
case "diaria":
IDailyTrigger dailyTrigger = (IDailyTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
dailyTrigger.Enabled = true;
dailyTrigger.Id = nombre;
dailyTrigger.StartBoundary = fecha.Substring(6, 4).ToString() + "-" + fecha.Substring(3, 2).ToString() + "-" + fecha.Substring(0, 2).ToString() +
"T" + hora;
if (fechaFin != string.Empty)
{
dailyTrigger.EndBoundary = fechaFin.Substring(6, 4).ToString() + "-" + fechaFin.Substring(3, 2).ToString() + "-" + fechaFin.Substring(0, 2).ToString() +
"T" + horaFin;
}
dailyTrigger.DaysInterval = Convert.ToInt16(textBoxDia.Text.ToString());
if (checkBoxRepetir.Checked == true)
{
if (duracion != string.Empty)
dailyTrigger.Repetition.Duration = duracion;
dailyTrigger.Repetition.Interval = "PT" + repeticion.ToString() + "M";
}
break;
.....
...
Espero que le sirva a alguien.
Salu2