'------------------------------------------------------------------
' cet exemple te montre comment programer une tache planifiée avec l'object "Schedule.Service" en late binding
'À partir du moment où la tâche est enregistrée.
'------------------------------------------------------------------
Sub TEST_SHREDULER()
'constante qui spécifie un déclencheur basé sur le temps.
Const TriggerTypeTime = 1
' constante qui spécifie une action exécutable
.Const ActionTypeExec = 0
'********************************************************
'Céation l'objet TaskService
.Set service = CreateObject("Schedule.Service")
Call service.Connect
'********************************************************
'obtention d' un dossier pour créer une définition de tâche dans.
Dim rootFolder
Set rootFolder = service.GetFolder("\")
'La variable taskDefinition est l'objet TaskDefinition.
Dim taskDefinition
'Le paramètre flags est 0 car il n'est pas pris en charge.
Set taskDefinition = service.NewTask(0)
'********************************************************
'Définir des informations sur la tâche.
'Définissez les informations d'inscription pour la tâche par
'Création de l'objet RegistrationInfo.
Dim regInfo
Set regInfo = taskDefinition.RegistrationInfo
regInfo.Description = "demarrer le bloc-notes à un certain moment"
regInfo.Author = "Patrick"
'********************************************************
'Définir le principal de la tâche
Dim principal
Set principal = taskDefinition.principal
'Définissez le type de connexion à la connexion interactive
principal.LogonType = 3
' Définissez l'information de réglage de la tâche pour le planificateur de tâches par
'Création d'un objet TaskSettings.
Dim settings
Set settings = taskDefinition.settings
settings.Enabled = True
settings.StartWhenAvailable = True
settings.Hidden = False
'********************************************************
' Créez un déclencheur basé sur le temps.
Dim triggers
Set triggers = taskDefinition.triggers
Dim trigger
Set trigger = triggers.Create(TriggerTypeTime)
' les variables qui définissent quand le déclencheur est actif.
Dim startTime, endTime
'exemple
Dim time
time = DateAdd("s", 30, Now) 'start time = 30 secondes a partir de maintenant
startTime = XmlTime(time)
'selon les disponibilité du PC la tache demarrera entre ces deux moments
time = DateAdd("s", 60, Now) 'end time = 60 secondes a partir de maintenant
endTime = XmlTime(time)
MsgBox "startTime :" & startTime
MsgBox "endTime :" & endTime
trigger.StartBoundary = startTime
trigger.EndBoundary = endTime
trigger.ExecutionTimeLimit = "PT5M" '5 minutes de delay
trigger.ID = "TimeTriggerId"
trigger.Enabled = True
'***********************************************************
' Création l'action pour la tâche à exécuter.
' Ajoutez une action à la tâche pour exécuter notepad.exe.
Dim Action
Set Action = taskDefinition.Actions.Create(ActionTypeExec)
Action.Path = "C:\Windows\System32\notepad.exe"
MsgBox "Création de la définition de la tâche. À propos de soumettre la tâche ..."
'***********************************************************
'Enregistrez (créer) la tâche.
Call rootFolder.RegisterTaskDefinition( _
"Test TimeTrigger", taskDefinition, 6, , , 3)
MsgBox "Tâche soumise."
End Sub
'------------------------------------------------------------------
'la fonction qui suit sert a mettre le format date heure minutes secondes au format pour le shreduler
' Utilisé pour obtenir le temps pour le déclencheur
' startBoundary and endBoundary.la fonction sera utilisé deux fois pour le starttimeet endtime
' Renvoie l'heure dans le format correct:
' exemple :YYYY-MM-DDTHH:MM:SS.
'------------------------------------------------------------------
Function XmlTime(t)
Dim cSecond, cMinute, CHour, cDay, cMonth, cYear, tTime, tDate
cSecond = "0" & Second(t)
cMinute = "0" & Minute(t)
CHour = "0" & Hour(t)
cDay = "0" & Day(t)
cMonth = "0" & Month(t)
cYear = Year(t)
tTime = Right(CHour, 2) & ":" & Right(cMinute, 2) & ":" & Right(cSecond, 2)
tDate = cYear & "-" & Right(cMonth, 2) & "-" & Right(cDay, 2)
XmlTime = tDate & "T" & tTime
End Function