अनुसूचित कार्य बनाना


148

मैं C # WPF प्रोजेक्ट पर काम कर रहा हूं। मुझे उपयोगकर्ता को विंडोज टास्क शेड्यूलर में एक निर्धारित कार्य बनाने और जोड़ने की अनुमति देने की आवश्यकता है।

मैं यह करने के बारे में कैसे जा सकता हूं और निर्देशों और संदर्भों का उपयोग करने की मुझे क्या ज़रूरत है क्योंकि मुझे इंटरनेट पर खोज करते समय बहुत कुछ नहीं मिल रहा है।


2
आपकी हर ज़रूरत यहाँ है: msdn.microsoft.com/en-us/library/aa383614(v=vs.85).aspx । एपीआई, उदाहरण और स्पष्टीकरण कैसे प्राप्त करने के लिए आपको प्रोग्राम की आवश्यकता है।
kroonwijk 22

जवाबों:


214

आप कार्य शेड्यूलर प्रबंधित आवरण का उपयोग कर सकते हैं :

using System;
using Microsoft.Win32.TaskScheduler;

class Program
{
   static void Main(string[] args)
   {
      // Get the service on the local machine
      using (TaskService ts = new TaskService())
      {
         // Create a new task definition and assign properties
         TaskDefinition td = ts.NewTask();
         td.RegistrationInfo.Description = "Does something";

         // Create a trigger that will fire the task at this time every other day
         td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });

         // Create an action that will launch Notepad whenever the trigger fires
         td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));

         // Register the task in the root folder
         ts.RootFolder.RegisterTaskDefinition(@"Test", td);

         // Remove the task we just created
         ts.RootFolder.DeleteTask("Test");
      }
   }
}

वैकल्पिक रूप से आप देशी एपीआई का उपयोग कर सकते हैं या क्वार्ट्ज.नेट के लिए जा सकते हैं । देखें इस जानकारी के लिए।


3
हां, आपको Microsoft.Win32.TaskScheduler.dll डाउनलोड और संदर्भ देना होगा। लिंक उत्तर में है।
दिमित्री

हाँ, मुझे लगा कि मैंने संदर्भ जोड़ दिया है लेकिन किसी कारण से यह नहीं हुआ। इसके बारे में क्षमा करें, हालांकि यह बहुत अच्छा काम करता है। आपकी मदद के लिए धन्यवाद
Boardy

1
@ काम शुरू करें क्या आपको इसे विंडोज़ अनुसूचक या कुछ और के साथ पंजीकृत करने की आवश्यकता है?
हारून

2
मुझे लगता है कि संदर्भ win32 के लिए है, अगर मेरा सर्वर 64 बिट है तो क्या होगा?
Seichi

2
चूंकि CodePlex कुछ महीनों में बंद हो रहा है, कृपया nuget.org/packages/TaskScheduler पर टास्क शेड्यूलर प्रबंधित आवरण के लिए NuGet पृष्ठ पर ध्यान दें ।
डेविड ए। ग्रे

30

यह मेरे लिए काम करता है https://www.nuget.org/packages/ASquare.WindowsTaskScheduler/

यह अच्छी तरह से धाराप्रवाह एपीआई बनाया गया है।

//This will create Daily trigger to run every 10 minutes for a duration of 18 hours
SchedulerResponse response = WindowTaskScheduler
    .Configure()
    .CreateTask("TaskName", "C:\\Test.bat")
    .RunDaily()
    .RunEveryXMinutes(10)
    .RunDurationFor(new TimeSpan(18, 0, 0))
    .SetStartDate(new DateTime(2015, 8, 8))
    .SetStartTime(new TimeSpan(8, 0, 0))
    .Execute();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.