2013-05-12 56 views

回答

1

您需要爲每個task列舉Triggers,然後對該任務執行一些操作,將其存儲起來以備後用,或將名稱存儲在已過濾的對象名稱的列表中。您的選擇過程是檢查Trigger是否爲OnLogonTriggerOnSystemStartTrigger,然後您可以將該任務選擇到最終列表中。

例如

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個觸發。

+0

我有一個問題。問題是這只是在XP中的工作。此代碼不工作在7.任何方式來解決這個問題? – grvpanchal 2013-05-12 17:44:24

+0

@grvpanchal。我不認爲代碼項目庫在7中工作,因爲它使用任務計劃程序1.0 API已棄用 - ([見這裏](http://msdn.microsoft.com/en-us/library/aa383614%28v = VS.85%29.aspx))。您可能需要一個關於Win 7中訪問任務的新問題。 – 2013-05-12 18:00:52

+0

啊。好。所以你知道如何使用這個:http://taskscheduler.codeplex.com/ – grvpanchal 2013-05-12 18:11:03