2009-08-06 1 views

risposta

6

C'è uno Task Scheduler API che è possibile utilizzare per accedere alle informazioni sulle attività. (È una libreria com, ma puoi chiamarla da C# usando pinvokes)

C'è uno article on codeproject che fornisce un wrapper .net per l'API.

[C'è anche il comando schtasks-more info]

+0

verificato che wrapper codeProject. Funziona alla grande. Sono davvero sorpreso che non ci siano oggetti scheduleTask nel framework .net! – KevinDeus

1

btw, IRT mia soluzione accettata, ecco il codice wrapper CodeProject (vedi http://www.codeproject.com/KB/cs/tsnewlib.aspx) necessari per verificare che uno scheduledTask esiste

Io uso questo in un test di integrazione in modo che l'Assert è NUnit ..

public static void VerifyTask(string server, string scheduledTaskToFind) 
{ 
    ScheduledTasks st = new ScheduledTasks(server); 

    string[] taskNames = st.GetTaskNames(); 
    List<string> jobs = new List<string>(taskNames); 

    Assert.IsTrue(jobs.Contains(scheduledTaskToFind), "unable to find " + scheduledTaskToFind); 

    st.Dispose(); 
} 

per verificare se è abilitato, è possibile effettuare le seguenti operazioni:

Task task = st.OpenTask(scheduledTaskToFind); 
Assert.IsTrue(task.Status != TaskStatus.Disabled);