So ich habe zwar nicht die Lösung gefunden die ich mir erhoffte, also den
Task/Job zu laden ihn zu ändern und anschließend zu speichern.
Jedoch habe ich eine Lösung mit der ich doch ganz gut leben kann
Ich lösche erst den Trigger um anschließend einen neuen mit den
entsprechenden Einstellungen zuerstellen
Delphi-Quellcode:
TaskScheduler := TJclTaskSchedule.Create;
TaskScheduler.Refresh;
//Task suchen...
TaskIdx := 0;
bFound := False;
while (TaskIdx < TaskScheduler.TaskCount) and not bFound do begin
if AnsiLowerCase(TaskScheduler.Tasks[TaskIdx].TaskName) = 'backup-reminder.job' then bFound := True else Inc(TaskIdx);
end;{while}
//Benachrichtigungs Task 'planen'
if bFound then begin
with TaskScheduler.Tasks[TaskIdx] do begin
//Bisherigen Plan löschen
ScheduledWorkItem.DeleteTrigger(0);
//Neuer Trigger setzen...
ScheduledWorkItem.CreateTrigger(piNewTrigger, ppTrigger);
DecodeDate(Now, myYear, myMonth, myDay);
ZeroMemory(@pTrigger, SizeOf(TASK_TRIGGER));
pTrigger.cbTriggerSize := SizeOf(TASK_TRIGGER);
pTrigger.Reserved1 := 0;
pTrigger.wBeginYear := myYear;
pTrigger.wBeginMonth := myMonth;
pTrigger.wBeginDay := myDay;
pTrigger.wEndYear := 0;
pTrigger.wEndMonth := 0;
pTrigger.wEndDay := 0;
pTrigger.wStartHour := 15;
pTrigger.wStartMinute := 45;
pTrigger.MinutesDuration := 0;
pTrigger.MinutesInterval := 0;
pTrigger.rgFlags := 0;
pTrigger.TriggerType := TASK_TIME_TRIGGER_WEEKLY;
MyWeekly.WeeksInterval := 1;
MyWeekly.rgfDaysOfTheWeek := Round(IntPower(2, DayOfWeek(dtInfoMsg)-1));
MyTriggerTypeUnion.Weekly := MyWeekly;
pTrigger.Type_ := MyTriggerTypeUnion;
pTrigger.Reserved2 := 0;
pTrigger.wRandomMinutesInterval := 0;
ppTrigger.SetTrigger(pTrigger);
Save;
end;
end;{if}