anche come si può sapere se è in esecuzione, abilitato/disabilitato, ecc.?Come si verifica la presenza di attività pianificate su un server mediante C#?
6
A
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.
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);
verificato che wrapper codeProject. Funziona alla grande. Sono davvero sorpreso che non ci siano oggetti scheduleTask nel framework .net! – KevinDeus