我正在使用http://www.codeproject.com/KB/cs/tsnewlib.aspx库列出在登录或启动时触发的任务
ScheduledTasks st = new ScheduledTasks();
foreach (string taskName in st.GetTaskNames())
{
using (Task task = st.OpenTask(taskName))
{
listBox1.Items.Add(taskName);
}
}
我应该使用什么条件来仅列出启动或登录任务
答案 0 :(得分:1)
您需要为每个Triggers
枚举task
,并对该任务执行某些操作,将其存储以供日后使用,或将该名称存储在已过滤的Task
对象名称列表中。您的选择过程是检查Trigger
是OnLogonTrigger
还是OnSystemStartTrigger
,然后您可以将该任务选入最终列表。
e.g。
List<string> startupAndLogonTasks = new List<string>();
foreach (string taskName in st.GetTaskNames()) {
using (Task task = st.OpenTask(taskName)) {
if (task != null) {
foreach (Trigger tr in task.Triggers) {
if (tr is OnSystemStartTrigger || tr is OnLogonTrigger) {
// Do something, such as log the name, or store the task for later
startupAndLogonTasks.Add(task.Name);
// break out and move to the next task
break;
}
}
}
}
}
当然,如果您想要只具有登录或启动类型的任务,那么还要检查Triggers
集合中只有1个触发器。