Click here to Skip to main content
15,896,727 members
Articles / Programming Languages / C#

A New Task Scheduler Class Library for .NET

Rate me:
Please Sign up or sign in to vote.
4.93/5 (233 votes)
17 Dec 2007CPOL15 min read 3.8M   63.3K   634  
A revision of a Task Scheduler class library by David Hall
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>TaskScheduler</name>
    </assembly>
    <members>
        <member name="T:TaskScheduler.TriggerType">
            <summary>
            Valid types of triggers
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.RunOnce">
            <summary>
            Trigger is set to run the task a single time. 
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.RunDaily">
            <summary>
            Trigger is set to run the task on a daily interval. 
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.RunWeekly">
            <summary>
            Trigger is set to run the work item on specific days of a specific week of a specific month. 
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.RunMonthly">
            <summary>
            Trigger is set to run the task on a specific day(s) of the month.
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.RunMonthlyDOW">
            <summary>
            Trigger is set to run the task on specific days, weeks, and months.
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.OnIdle">
            <summary>
            Trigger is set to run the task if the system remains idle for the amount of time specified by the idle wait time of the task.
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.OnSystemStart">
            <summary>
            Trigger is set to run the task at system startup.
            </summary>
        </member>
        <member name="F:TaskScheduler.TriggerType.OnLogon">
            <summary>
            Trigger is set to run the task when a user logs on. 
            </summary>
        </member>
        <member name="T:TaskScheduler.DaysOfTheWeek">
            <summary>
            Values for days of the week (Monday, Tuesday, etc.)  These carry the Flags
            attribute so DaysOfTheWeek and be combined with | (or).
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Sunday">
            <summary>
            Sunday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Monday">
            <summary>
            Monday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Tuesday">
            <summary>
            Tuesday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Wednesday">
            <summary>
            Wednesday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Thursday">
            <summary>
            Thursday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Friday">
            <summary>
            Friday
            </summary>
        </member>
        <member name="F:TaskScheduler.DaysOfTheWeek.Saturday">
            <summary>
            Saturday
            </summary>
        </member>
        <member name="T:TaskScheduler.WhichWeek">
            <summary>
            Values for week of month (first, second, ..., last)
            </summary>
        </member>
        <member name="F:TaskScheduler.WhichWeek.FirstWeek">
            <summary>
            First week of the month
            </summary>
        </member>
        <member name="F:TaskScheduler.WhichWeek.SecondWeek">
            <summary>
            Second week of the month
            </summary>
        </member>
        <member name="F:TaskScheduler.WhichWeek.ThirdWeek">
            <summary>
            Third week of the month
            </summary>
        </member>
        <member name="F:TaskScheduler.WhichWeek.FourthWeek">
            <summary>
            Fourth week of the month
            </summary>
        </member>
        <member name="F:TaskScheduler.WhichWeek.LastWeek">
            <summary>
            Last week of the month
            </summary>
        </member>
        <member name="T:TaskScheduler.MonthsOfTheYear">
            <summary>
            Values for months of the year (January, February, etc.)  These carry the Flags
            attribute so DaysOfTheWeek and be combined with | (or).
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.January">
            <summary>
            January
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.February">
            <summary>
            February
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.March">
            <summary>
            March
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.April">
            <summary>
            April
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.May">
             <summary>
            May 
             </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.June">
            <summary>
            June
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.July">
            <summary>
            July
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.August">
            <summary>
            August
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.September">
            <summary>
            September
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.October">
            <summary>
            October
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.November">
            <summary>
            November
            </summary>
        </member>
        <member name="F:TaskScheduler.MonthsOfTheYear.December">
            <summary>
            December
            </summary>
        </member>
        <member name="T:TaskScheduler.Trigger">
            <summary>
            Trigger is a generalization of all the concrete trigger classes, and any actual
            Trigger object is one of those types.  When included in the TriggerList of a
            Task, a Trigger determines when a scheduled task will be run.
            </summary>
            <remarks>
            <para>
            Create a concrete trigger for a specific start condition and then call TriggerList.Add
            to include it in a task's TriggerList.</para>
            <para>
            A Trigger that is not yet in a Task's TriggerList is said to be unbound and it holds
            no resources (i.e. COM interfaces).  Once it is added to a TriggerList, it is bound and
            holds a COM interface that is only released when the Trigger is removed from the list or
            the corresponding Task is closed.</para>  
            <para>
            A Trigger that is already bound cannot be added to a TriggerList.  To copy a Trigger from
            one list to another, use <see cref="M:TaskScheduler.Trigger.Clone"/> to create an unbound copy and then add the
            copy to the new list.  To move a Trigger from one list to another, use <see cref="M:TaskScheduler.TriggerList.Remove(TaskScheduler.Trigger)"/>
            to extract the Trigger from the first list before adding it to the second.</para>
            </remarks>
        </member>
        <member name="M:TaskScheduler.Trigger.#ctor">
            <summary>
            Internal base constructor for an unbound Trigger.
            </summary>
        </member>
        <member name="M:TaskScheduler.Trigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor which initializes itself from
            from an ITaskTrigger interface.
            </summary>
            <param name="iTrigger">Instance of ITaskTrigger from system task scheduler.</param>
        </member>
        <member name="M:TaskScheduler.Trigger.Clone">
            <summary>
            Clone returns an unbound copy of the Trigger object.  It can be use
            on either bound or unbound original.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TaskScheduler.Trigger.CreateTrigger(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Creates a new, bound Trigger object from an ITaskTrigger interface.  The type of the
            concrete object created is determined by the type of ITaskTrigger.
            </summary>
            <param name="iTaskTrigger">Instance of ITaskTrigger.</param>
            <returns>One of the concrete classes derived from Trigger.</returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException">Unable to recognize trigger type.</exception>
        </member>
        <member name="M:TaskScheduler.Trigger.SyncTrigger">
            <summary>
            When a bound Trigger is changed, the corresponding trigger in the system
            Task Scheduler is updated to stay in sync with the local structure.
            </summary>
        </member>
        <member name="M:TaskScheduler.Trigger.Bind(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Bind a Trigger object to an ITaskTrigger interface.  This causes the Trigger to
            sync itself with the interface and remain in sync whenever it is modified in the future.
            If the Trigger is already bound, an ArgumentException is thrown.
            </summary>
            <param name="iTaskTrigger">An interface representing a trigger in Task Scheduler.</param>
            <exception cref="T:System.ArgumentException">Attempt to bind and already bound trigger.</exception>
        </member>
        <member name="M:TaskScheduler.Trigger.Bind(TaskScheduler.Trigger)">
            <summary>
            Bind a Trigger to the same interface the argument trigger is bound to.  
            </summary>
            <param name="trigger">A bound Trigger. </param>
        </member>
        <member name="M:TaskScheduler.Trigger.Unbind">
            <summary>
            Break the connection between this Trigger and the system Task Scheduler.  This
            releases COM resources used in bound Triggers.
            </summary>
        </member>
        <member name="M:TaskScheduler.Trigger.ToString">
            <summary>
            Gets a string, supplied by the WindowsTask Scheduler, of a bound Trigger. 
            For an unbound trigger, returns "Unbound Trigger".
            </summary>
            <returns>String representation of the trigger.</returns>
        </member>
        <member name="M:TaskScheduler.Trigger.Equals(System.Object)">
            <summary>
            Determines if two triggers are internally equal.  Does not consider whether
            the Triggers are bound or not.
            </summary>
            <param name="obj">Value of trigger to compare.</param>
            <returns>true if triggers are equivalent.</returns>
        </member>
        <member name="M:TaskScheduler.Trigger.GetHashCode">
            <summary>
            Gets a hash code for the current trigger.  A Trigger has the same hash
            code whether it is bound or not.
            </summary>
            <returns>Hash code value.</returns>
        </member>
        <member name="P:TaskScheduler.Trigger.Bound">
            <summary>
            Get whether the Trigger is currently bound
            </summary>
        </member>
        <member name="P:TaskScheduler.Trigger.BeginDate">
            <summary>
            Gets/sets the beginning year, month, and day for the trigger.
            </summary>
        </member>
        <member name="P:TaskScheduler.Trigger.HasEndDate">
            <summary>
            Gets/sets indication that the task uses an EndDate.  Returns true if a value has been
            set for the EndDate property.  Set can only be used to turn indication off.  
            </summary>
            <exception cref="T:System.ArgumentException">Has EndDate becomes true only by setting the EndDate
            property.</exception>
        </member>
        <member name="P:TaskScheduler.Trigger.EndDate">
            <summary>
            Gets/sets the ending year, month, and day for the trigger.  After a value has been set
            with EndDate, HasEndDate becomes true.
            </summary>
        </member>
        <member name="P:TaskScheduler.Trigger.DurationMinutes">
            <summary>
            Gets/sets the number of minutes after the trigger fires that it remains active.  Used
            in conjunction with <see cref="P:TaskScheduler.Trigger.IntervalMinutes"/> to run a task repeatedly for a period of time.
            For example, if you want to start a task at 8:00 A.M. repeatedly restart it until 5:00 P.M.,
            there would be 540 minutes (9 hours) in the duration.
            Can also be used to terminate a task that is running when the DurationMinutes expire.  Use
            <see cref="P:TaskScheduler.Trigger.KillAtDurationEnd"/> to specify that task should be terminated at that time.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Setting must be greater than or equal
            to the IntervalMinutes setting.</exception>
        </member>
        <member name="P:TaskScheduler.Trigger.IntervalMinutes">
            <summary>
            Gets/sets the number of minutes between executions for a task that is to be run repeatedly.
            Repetition continues until the interval specified in <see cref="P:TaskScheduler.Trigger.DurationMinutes"/> expires.
            IntervalMinutes are counted from the start of the previous execution.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Setting must be less than
            to the DurationMinutes setting.</exception>
        </member>
        <member name="P:TaskScheduler.Trigger.KillAtDurationEnd">
            <summary>
            Gets/sets whether task will be killed (terminated) when DurationMinutes expires. 
            See <see cref="P:TaskScheduler.Trigger.DurationMinutes"/>.
            </summary>
        </member>
        <member name="P:TaskScheduler.Trigger.Disabled">
            <summary>
            Gets/sets whether trigger is disabled.
            </summary>
        </member>
        <member name="T:TaskScheduler.Trigger.TaskTriggerFlags">
            <summary>
            Flags for triggers
            </summary>
        </member>
        <member name="T:TaskScheduler.StartableTrigger">
            <summary>
            Generalization of all triggers that have a start time.
            </summary>
            <remarks>StartableTrigger serves as a base class for triggers with a
            start time, but it has little use to clients.</remarks>
        </member>
        <member name="M:TaskScheduler.StartableTrigger.#ctor">
            <summary>
            Internal constructor, same as base.
            </summary>
        </member>
        <member name="M:TaskScheduler.StartableTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor from ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from system Task Scheduler.</param>
        </member>
        <member name="M:TaskScheduler.StartableTrigger.SetStartTime(System.UInt16,System.UInt16)">
            <summary>
            Sets the start time of the trigger.
            </summary>
            <param name="hour">Hour of the day that the trigger will fire.</param>
            <param name="minute">Minute of the hour.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The hour is not between 0 and 23 or the minute is not between 0 and 59.</exception>
        </member>
        <member name="P:TaskScheduler.StartableTrigger.StartHour">
            <summary>
            Gets/sets hour of the day that trigger will fire (24 hour clock).
            </summary>
        </member>
        <member name="P:TaskScheduler.StartableTrigger.StartMinute">
            <summary>
            Gets/sets minute of the hour (specified in <see cref="P:TaskScheduler.StartableTrigger.StartHour"/>) that trigger will fire.
            </summary>
        </member>
        <member name="T:TaskScheduler.RunOnceTrigger">
            <summary>
            Trigger that fires once only.
            </summary>
        </member>
        <member name="M:TaskScheduler.RunOnceTrigger.#ctor(System.DateTime)">
            <summary>
            Create a RunOnceTrigger that fires when specified.
            </summary>
            <param name="runDateTime">Date and time to fire.</param>
        </member>
        <member name="M:TaskScheduler.RunOnceTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from system Task Scheduler.</param>
        </member>
        <member name="T:TaskScheduler.DailyTrigger">
            <summary>
            Trigger that fires at a specified time, every so many days.
            </summary>
        </member>
        <member name="M:TaskScheduler.DailyTrigger.#ctor(System.Int16,System.Int16,System.Int16)">
            <summary>
            Creates a DailyTrigger that fires only at an interval of so many days.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of the hour trigger will fire.</param>
            <param name="daysInterval">Number of days between task runs.</param>
        </member>
        <member name="M:TaskScheduler.DailyTrigger.#ctor(System.Int16,System.Int16)">
            <summary>
            Creates DailyTrigger that fires every day.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of hour (specified in "hour") trigger will fire.</param>
        </member>
        <member name="M:TaskScheduler.DailyTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from system Task Scheduler.</param>
        </member>
        <member name="P:TaskScheduler.DailyTrigger.DaysInterval">
            <summary>
            Gets/sets the number of days between successive firings.
            </summary>
        </member>
        <member name="T:TaskScheduler.WeeklyTrigger">
            <summary>
            Trigger that fires at a specified time, on specified days of the week,
            every so many weeks.
            </summary>
        </member>
        <member name="M:TaskScheduler.WeeklyTrigger.#ctor(System.Int16,System.Int16,TaskScheduler.DaysOfTheWeek,System.Int16)">
            <summary>
            Creates a WeeklyTrigger that is eligible to fire only during certain weeks.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of hour (specified in "hour") trigger will fire.</param>
            <param name="daysOfTheWeek">Days of the week task will run.</param>
            <param name="weeksInterval">Number of weeks between task runs.</param>
        </member>
        <member name="M:TaskScheduler.WeeklyTrigger.#ctor(System.Int16,System.Int16,TaskScheduler.DaysOfTheWeek)">
            <summary>
            Creates a WeeklyTrigger that is eligible to fire during any week.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of hour (specified in "hour") trigger will fire.</param>
            <param name="daysOfTheWeek">Days of the week task will run.</param>
        </member>
        <member name="M:TaskScheduler.WeeklyTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger interface from system Task Scheduler.</param>
        </member>
        <member name="P:TaskScheduler.WeeklyTrigger.WeeksInterval">
            <summary>
            Gets/sets number of weeks from one eligible week to the next.
            </summary>
        </member>
        <member name="P:TaskScheduler.WeeklyTrigger.WeekDays">
            <summary>
            Gets/sets the days of the week on which the trigger fires.
            </summary>
        </member>
        <member name="T:TaskScheduler.MonthlyDOWTrigger">
            <summary>
            Trigger that fires at a specified time, on specified days of the week, 
            in specified weeks of the month, during specified months of the year.
            </summary>
        </member>
        <member name="M:TaskScheduler.MonthlyDOWTrigger.#ctor(System.Int16,System.Int16,TaskScheduler.DaysOfTheWeek,TaskScheduler.WhichWeek,TaskScheduler.MonthsOfTheYear)">
            <summary>
            Creates a MonthlyDOWTrigger that fires during specified months only.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minute of the hour trigger will fire.</param>
            <param name="daysOfTheWeek">Days of the week trigger will fire.</param>
            <param name="whichWeeks">Weeks of the month trigger will fire.</param>
            <param name="months">Months of the year trigger will fire.</param>
        </member>
        <member name="M:TaskScheduler.MonthlyDOWTrigger.#ctor(System.Int16,System.Int16,TaskScheduler.DaysOfTheWeek,TaskScheduler.WhichWeek)">
            <summary>
            Creates a MonthlyDOWTrigger that fires every month.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minute of the hour trigger will fire.</param>
            <param name="daysOfTheWeek">Days of the week trigger will fire.</param>
            <param name="whichWeeks">Weeks of the month trigger will fire.</param>
        </member>
        <member name="M:TaskScheduler.MonthlyDOWTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from the system Task Scheduler.</param>
        </member>
        <member name="P:TaskScheduler.MonthlyDOWTrigger.WhichWeeks">
            <summary>
            Gets/sets weeks of the month in which trigger will fire.
            </summary>
        </member>
        <member name="P:TaskScheduler.MonthlyDOWTrigger.WeekDays">
            <summary>
            Gets/sets days of the week on which trigger will fire.
            </summary>
        </member>
        <member name="P:TaskScheduler.MonthlyDOWTrigger.Months">
            <summary>
            Gets/sets months of the year in which trigger will fire.
            </summary>
        </member>
        <member name="T:TaskScheduler.MonthlyTrigger">
            <summary>
            Trigger that fires at a specified time, on specified days of themonth,
            on specified months of the year.
            </summary>
        </member>
        <member name="M:TaskScheduler.MonthlyTrigger.#ctor(System.Int16,System.Int16,System.Int32[],TaskScheduler.MonthsOfTheYear)">
            <summary>
            Creates a MonthlyTrigger that fires only during specified months of the year.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of hour (specified in "hour") trigger will fire.</param>
            <param name="daysOfMonth">Days of the month trigger will fire.  (See <see cref="P:TaskScheduler.MonthlyTrigger.Days"/> property.</param>
            <param name="months">Months of the year trigger will fire.</param>
        </member>
        <member name="M:TaskScheduler.MonthlyTrigger.#ctor(System.Int16,System.Int16,System.Int32[])">
            <summary>
            Creates a MonthlyTrigger that fires during any month.
            </summary>
            <param name="hour">Hour of day trigger will fire.</param>
            <param name="minutes">Minutes of hour (specified in "hour") trigger will fire.</param>
            <param name="daysOfMonth">Days of the month trigger will fire.  (See <see cref="P:TaskScheduler.MonthlyTrigger.Days"/> property.</param>
        </member>
        <member name="M:TaskScheduler.MonthlyTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from system Task Scheduler.</param>
        </member>
        <member name="M:TaskScheduler.MonthlyTrigger.MaskToIndices(System.Int32)">
            <summary>
            Convert an integer representing a mask to an array where each element contains the index
            of a bit that is ON in the mask.  Bits are considered to number from 1 to 32.
            </summary>
            <param name="mask">An interger to be interpreted as a mask.</param>
            <returns>An array with an element for each bit of the mask which is ON.</returns>
        </member>
        <member name="M:TaskScheduler.MonthlyTrigger.IndicesToMask(System.Int32[])">
            <summary>
            Converts an array of bit indices into a mask with bits  turned ON at every index
            contained in the array.  Indices must be from 1 to 32 and bits are numbered the same.
            </summary>
            <param name="indices">An array with an element for each bit of the mask which is ON.</param>
            <returns>An interger to be interpreted as a mask.</returns>
        </member>
        <member name="P:TaskScheduler.MonthlyTrigger.Months">
            <summary>
            Gets/sets months of the year trigger will fire.
            </summary>
        </member>
        <member name="P:TaskScheduler.MonthlyTrigger.Days">
            <summary>
            Gets/sets days of the month trigger will fire.
            </summary>
            <value>An array with one element for each day that the trigger will fire.
            The value of the element is the number of the day, in the range 1..31.</value>
        </member>
        <member name="T:TaskScheduler.OnIdleTrigger">
            <summary>
            Trigger that fires when the system is idle for a period of time.
            Length of period set by <see cref="P:TaskScheduler.Task.IdleWaitMinutes"/>.
            </summary>
        </member>
        <member name="M:TaskScheduler.OnIdleTrigger.#ctor">
            <summary>
            Creates an OnIdleTrigger.  Idle period set separately.
            See <see cref="P:TaskScheduler.Task.IdleWaitMinutes"/> inherited property.
            </summary>
        </member>
        <member name="M:TaskScheduler.OnIdleTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">Current base Trigger.</param>
        </member>
        <member name="T:TaskScheduler.OnSystemStartTrigger">
            <summary>
            Trigger that fires when the system starts.
            </summary>
        </member>
        <member name="M:TaskScheduler.OnSystemStartTrigger.#ctor">
            <summary>
            Creates an OnSystemStartTrigger.
            </summary>
        </member>
        <member name="M:TaskScheduler.OnSystemStartTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger interface from system Task Scheduler.</param>
        </member>
        <member name="T:TaskScheduler.OnLogonTrigger">
            <summary>
            Trigger that fires when a user logs on.
            </summary>
            <remarks>Triggers of this type fire when any user logs on, not just the
            user identified in the account information.</remarks>
        </member>
        <member name="M:TaskScheduler.OnLogonTrigger.#ctor">
            <summary>
            Creates an OnLogonTrigger.
            </summary>
        </member>
        <member name="M:TaskScheduler.OnLogonTrigger.#ctor(TaskSchedulerInterop.ITaskTrigger)">
            <summary>
            Internal constructor to create from existing ITaskTrigger interface.
            </summary>
            <param name="iTrigger">ITaskTrigger from system Task Scheduler.</param>
        </member>
        <member name="T:TaskScheduler.ScheduledTasks">
            <summary>
            ScheduledTasks represents the a computer's Scheduled Tasks folder.  Using a ScheduledTasks
            object, you can discover the names of the tasks in the folder and you can open a task
            to work with it.  You can also create or delete tasks.
            </summary>
            <remarks>
            A ScheduledTasks object holds a COM interface that can be released by calling <see cref="M:TaskScheduler.ScheduledTasks.Dispose"/>.
            </remarks>
        </member>
        <member name="F:TaskScheduler.ScheduledTasks.its">
            <summary>
            Underlying COM interface.
            </summary>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.#ctor(System.String)">
            <summary>
            Constructor to use Scheduled tasks of a remote computer identified by a UNC
            name.  The calling process must have administrative privileges on the remote machine. 
            May throw exception if the computer's task scheduler cannot be reached, and may
            give strange results if the argument is not in UNC format.
            </summary>
            <param name="computer">The remote computer's UNC name, e.g. "\\DALLAS".</param>
            <exception cref="T:System.ArgumentException">The Task Scheduler could not be accessed.</exception>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.#ctor">
            <summary>
            Constructor to use Scheduled Tasks of the local computer.
            </summary>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.GetTaskNames">
            <summary>
            Return the names of all scheduled tasks.  The names returned include the file extension ".job";
            methods requiring a task name can take the name with or without the extension.
            </summary>
            <returns>The names in a string array.</returns>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.CreateTask(System.String)">
            <summary>
            Creates a new task on the system with the given <paramref name="name"/>.
            </summary>
            <remarks>Task names follow normal filename character restrictions.  The name
            will be come the name of the file used to store the task (with .job added).</remarks>
            <param name="name">Name for the new task.</param>
            <returns>Instance of new task.</returns>
            <exception cref="T:System.ArgumentException">There is an existing task with the given name.</exception>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.DeleteTask(System.String)">
            <summary>
            Deletes the task of the given <paramref name="name" />.
            </summary>
            <remarks>If you delete a task that is open, a subsequent save will throw an
            exception.  You can save to a filename, however, to create a new task.</remarks>
            <param name="name">Name of task to delete.</param>
            <returns>True if the task was deleted, false if the task wasn't found.</returns>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.OpenTask(System.String)">
            <summary>
            Opens the task with the given <paramref name="name" />.  An open task holds COM interfaces
            which are released by the Task's Close() method.
            </summary>
            <remarks>If the task does not exist, null is returned.</remarks>
            <param name="name">Name of task to open.</param>
            <returns>An instance of a Task, or null if the task name couldn't be found.</returns>
        </member>
        <member name="M:TaskScheduler.ScheduledTasks.Dispose">
            <summary>
            The internal COM interface is released.  Further access to the
            object will throw null reference exceptions.
            </summary>
        </member>
        <member name="T:TaskScheduler.TaskList">
            <summary>
            Deprecated.  Provided for V1 compatibility only. 
            </summary>
            <remarks>
            <p>Presents the Scheduled Tasks folder as a Task Collection. </p> 
            
            <p>A TaskList is indexed by name rather than position.
            You can't add, remove, or assign tasks in TaskList.  Accessing
            a Task in the list by indexing, or by enumeration, is equivalent to opening a task
            by calling the ScheduledTasks Open() method.</p> 	
            <p><i>Provided for compatibility with version one of the library.  Use of Scheduler
            and TaskList will normally result in COM memory leaks.</i></p>
            </remarks>
        </member>
        <member name="F:TaskScheduler.TaskList.st">
            <summary>
            Scheduled Tasks folder supporting this TaskList.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskList.nameComputer">
            <summary>
            Name of the target computer whose Scheduled Tasks are to be accessed.
            </summary>
        </member>
        <member name="M:TaskScheduler.TaskList.#ctor">
            <summary>
            Constructors - marked internal so you have to create using Scheduler class.
            </summary>
        </member>
        <member name="M:TaskScheduler.TaskList.NewTask(System.String)">
            <summary>
            Creates a new task on the system with the supplied <paramref name="name"/>.
            </summary>
            <param name="name">Unique display name for the task. If not unique, an ArgumentException will be thrown.</param>
            <returns>Instance of new task</returns>
            <exception cref="T:System.ArgumentException">There is already a task of the same name as the one supplied for the new task.</exception>
        </member>
        <member name="M:TaskScheduler.TaskList.Delete(System.String)">
            <summary>
            Deletes the task of the given <paramref name="name" />.
            </summary>
            <param name="name">Name of task to delete</param>
        </member>
        <member name="M:TaskScheduler.TaskList.GetEnumerator">
            <summary>
            Gets a TaskList enumerator
            </summary>
            <returns>Enumerator for TaskList</returns>
        </member>
        <member name="M:TaskScheduler.TaskList.Dispose">
            <summary>
            Disposes TaskList
            </summary>
        </member>
        <member name="P:TaskScheduler.TaskList.TargetComputer">
            <summary>
            Name of target computer
            </summary>
        </member>
        <member name="P:TaskScheduler.TaskList.Item(System.String)">
            <summary>
            Indexer which retrieves task of given <paramref name="name" />.
            </summary>
            <param name="name">Name of task to retrieve</param>
        </member>
        <member name="T:TaskScheduler.TaskList.Enumerator">
            <summary>
            Enumerator for <c>TaskList</c>
            </summary>
        </member>
        <member name="M:TaskScheduler.TaskList.Enumerator.#ctor(TaskScheduler.ScheduledTasks)">
            <summary>
            Internal constructor - Only accessable through <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
            </summary>
            <param name="st">ScheduledTasks object</param>
        </member>
        <member name="M:TaskScheduler.TaskList.Enumerator.MoveNext">
            <summary>
            Moves to the next task. See <see cref="M:System.Collections.IEnumerator.MoveNext"/> for more information.
            </summary>
            <returns>true if next task found, false if no more tasks.</returns>
        </member>
        <member name="M:TaskScheduler.TaskList.Enumerator.Reset">
            <summary>
            Reset task enumeration. See <see cref="M:System.Collections.IEnumerator.Reset"/> for more information.
            </summary>
        </member>
        <member name="P:TaskScheduler.TaskList.Enumerator.Current">
            <summary>
            Retrieves the current task.  See <see cref="P:System.Collections.IEnumerator.Current"/> for more information.
            </summary>
        </member>
        <member name="T:TaskScheduler.TriggerList">
            <summary>
            TriggerList is a collection of Triggers.  Every Task has a TriggerList that is
            created and destroyed automatically along with the Task.  There are no public constructors. 
            </summary>
            <remarks>
            <para>
            A TriggerList can be empty, and indeed a newly created Task has an empty list. 
            It's not clear how the system handles a task with no triggers, however.</para>
            <para>
            TriggerList implements IList and behaves like other indexable collections with one limitation:   
            You can't insert a Trigger at a position.  <c>Insert()</c> throws NotImplementedException.  This
            restriction is based on the underlying API. </para>
            </remarks>
        </member>
        <member name="M:TaskScheduler.TriggerList.#ctor(TaskSchedulerInterop.ITask)">
            <summary>
            Internal constructor creates TriggerList using an ITask interface to initialize.
            </summary>
            <param name="iTask">Instance of an ITask.</param>
        </member>
        <member name="M:TaskScheduler.TriggerList.RemoveAt(System.Int32)">
            <summary>
            Removes the trigger at a specified index.
            </summary>
            <param name="index">Index of trigger to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Index out of range.</exception>
        </member>
        <member name="M:TaskScheduler.TriggerList.System#Collections#IList#Insert(System.Int32,System.Object)">
            <summary>
            Not implemented; throws NotImplementedException.
            If implemented, would insert a trigger at a specified index. 
            </summary>
            <param name="index">Index to insert trigger.</param>
            <param name="value">Value of trigger to insert.</param>
        </member>
        <member name="M:TaskScheduler.TriggerList.Remove(TaskScheduler.Trigger)">
            <summary>
            Removes the trigger from the collection.  If the trigger is not in
            the collection, nothing happens.  (No exception.)
            </summary>
            <param name="trigger">Trigger to remove.</param>
        </member>
        <member name="M:TaskScheduler.TriggerList.System#Collections#IList#Remove(System.Object)">
            <summary>
            IList.Remove implementation.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.Contains(TaskScheduler.Trigger)">
            <summary>
            Test to see if trigger is part of the collection.
            </summary>
            <param name="trigger">Trigger to find.</param>
            <returns>true if trigger found in collection.</returns>
        </member>
        <member name="M:TaskScheduler.TriggerList.System#Collections#IList#Contains(System.Object)">
            <summary>
            IList.Contains implementation.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.Clear">
            <summary>
            Remove all triggers from collection.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.IndexOf(TaskScheduler.Trigger)">
            <summary>
            Returns the index of the supplied Trigger.
            </summary>
            <param name="trigger">Trigger to find.</param>
            <returns>Zero based index in collection, -1 if not a member.</returns>
        </member>
        <member name="M:TaskScheduler.TriggerList.System#Collections#IList#IndexOf(System.Object)">
            <summary>
            IList.IndexOf implementation.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.Add(TaskScheduler.Trigger)">
            <summary>
            Add the supplied Trigger to the collection.  The Trigger to be added must be unbound,
            i.e. it must not be a current member of a TriggerList--this or any other.
            </summary>
            <param name="trigger">Trigger to add.</param>
            <returns>Index of added trigger.</returns>
            <exception cref="T:System.ArgumentException">Trigger being added is already bound.</exception>
        </member>
        <member name="M:TaskScheduler.TriggerList.System#Collections#IList#Add(System.Object)">
            <summary>
            IList.Add implementation.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies all the Triggers in the collection to an array, beginning at the given index. 
            The Triggers assigned to the array are cloned from the originals, implying they are
            unbound copies.  (Can't tell if cloning is the intended semantics for this ICollection method,
            but it seems a good choice for TriggerLists.) 
            </summary>
            <param name="array">Array to copy triggers into.</param>
            <param name="index">Index at which to start copying.</param>
        </member>
        <member name="M:TaskScheduler.TriggerList.GetEnumerator">
            <summary>
            Gets a TriggerList enumerator.
            </summary>
            <returns>Enumerator for TriggerList.</returns>
        </member>
        <member name="M:TaskScheduler.TriggerList.Dispose">
            <summary>
            Unbinds and Disposes all the Triggers in the collection, releasing the com interfaces they hold.
            Destroys the internal private pointer to the ITask com interface, but does not 
            specifically release the interface because it is also in the containing task.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.IsReadOnly">
            <summary>
            Gets read-only state of collection. Always false for TriggerLists.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.Item(System.Int32)">
            <summary>
            Access the Trigger at a specified index.  Assigning to a TriggerList element requires
            the value to unbound.  The previous list element becomes unbound and lost,
            while the newly assigned Trigger becomes bound in its place.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Collection index out of range.</exception>
        </member>
        <member name="P:TaskScheduler.TriggerList.System#Collections#IList#Item(System.Int32)">
            <summary>
            IList.this[int] implementation.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.IsFixedSize">
            <summary>
            Returns whether collection is a fixed size. Always returns false for TriggerLists.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.Count">
            <summary>
            Gets the number of Triggers in the collection.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.IsSynchronized">
            <summary>
            Returns synchronizable state. Always false since the Task Scheduler is not
            thread safe.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.SyncRoot">
            <summary>
            Gets the root object for synchronization. Always null since TriggerLists aren't synchronized.
            </summary>
        </member>
        <member name="T:TaskScheduler.TriggerList.Enumerator">
            <summary>
            Enumerator for TriggerList; implements IEnumerator interface.
            </summary>
        </member>
        <member name="M:TaskScheduler.TriggerList.Enumerator.#ctor(TaskScheduler.TriggerList)">
            <summary>
            Internal constructor - Only accessible through <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>.
            </summary>
            <param name="outer">Instance of a TriggerList.</param>
        </member>
        <member name="M:TaskScheduler.TriggerList.Enumerator.MoveNext">
            <summary>
            Moves to the next trigger. See <see cref="M:System.Collections.IEnumerator.MoveNext"/> for more information.
            </summary>
            <returns>False if there is no next trigger.</returns>
        </member>
        <member name="M:TaskScheduler.TriggerList.Enumerator.Reset">
            <summary>
            Reset trigger enumeration. See <see cref="M:System.Collections.IEnumerator.Reset"/> for more information.
            </summary>
        </member>
        <member name="P:TaskScheduler.TriggerList.Enumerator.Current">
            <summary>
            Retrieves the current trigger.  See <see cref="P:System.Collections.IEnumerator.Current"/> for more information.
            </summary>
        </member>
        <member name="T:TaskScheduler.TaskFlags">
            <summary>
            Options for a task, used for the Flags property of a Task. Uses the
            "Flags" attribute, so these values are combined with |. 
            Some flags are documented as Windows 95 only, but they have a
            user interface in Windows XP so that may not be true.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.Interactive">
            <summary>
            The precise meaning of this flag is elusive.  The MSDN documentation describes it
            only for use in converting jobs from the Windows NT "AT" service to the newer
            Task Scheduler.  No other use for the flag is documented.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.DeleteWhenDone">
            <summary>
            The task will be deleted when there are no more scheduled run times.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.Disabled">
            <summary>
            The task is disabled.  Used to temporarily prevent a task from being triggered normally.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.StartOnlyIfIdle">
            <summary>
            The task begins only if the computer is idle at the scheduled start time. 
            The computer is not considered idle until the task's <see cref="P:TaskScheduler.Task.IdleWaitMinutes"/> time
            elapses with no user input.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.KillOnIdleEnd">
            <summary>
            The task terminates if the computer makes an idle to non-idle transition while the task is running.
            For information regarding idle triggers, see <see cref="T:TaskScheduler.OnIdleTrigger"/>.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.DontStartIfOnBatteries">
            <summary>
            The task does not start if the computer is running on battery power.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.KillIfGoingOnBatteries">
            <summary>
            The task ends, and the associated application quits if the computer switches
            to battery power.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.RunOnlyIfDocked">
            <summary>
            The task runs only if the system is docked.  
            (Not mentioned in current MSDN documentation; probably obsolete.)
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.Hidden">
            <summary>
            The task item is hidden.  
            
            This is implemented by setting the job file's hidden attribute.  Testing revealed that clearing
            this flag doesn't clear the file attribute, so the library sets the file attribute directly.  This
            flag is kept in sync with the task's Hidden property, so they function equivalently.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.RunIfConnectedToInternet">
            <summary>
            The task runs only if there is currently a valid Internet connection.
            Not currently implemented. (Check current MSDN documentation for updates.)
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.RestartOnIdleResume">
            <summary>
            The task starts again if the computer makes a non-idle to idle transition before all the
            task's task_triggers elapse. (Use this flag in conjunction with KillOnIdleEnd.)
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.SystemRequired">
            <summary>
            Wake the computer to run this task.  Seems to be misnamed, but the name is taken from
            the low-level interface.
            
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskFlags.RunOnlyIfLoggedOn">
            <summary>
            The task runs only if the user specified in SetAccountInformation() is
            logged on interactively.  This flag has no effect on tasks set to run in
            the local SYSTEM account.
            </summary>
        </member>
        <member name="T:TaskScheduler.TaskStatus">
            <summary>
            Status values returned for a task.  Some values have been determined to occur although
            they do no appear in the Task Scheduler system documentation.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.Ready">
            <summary>
            The task is ready to run at its next scheduled time.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.Running">
            <summary>
            The task is currently running.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.NotScheduled">
            <summary>
            One or more of the properties that are needed to run this task on a schedule have not been set. 
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.NeverRun">
            <summary>
            The task has not yet run.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.Disabled">
            <summary>
            The task will not run at the scheduled times because it has been disabled.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.NoMoreRuns">
            <summary>
            There are no more runs scheduled for this task.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.Terminated">
            <summary>
            The last run of the task was terminated by the user.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.NoTriggers">
            <summary>
            Either the task has no triggers or the existing triggers are disabled or not set.
            </summary>
        </member>
        <member name="F:TaskScheduler.TaskStatus.NoTriggerTime">
            <summary>
            Event triggers don't have set run times.
            </summary>
        </member>
        <member name="T:TaskScheduler.Task">
            <summary>
            Represents an item in the Scheduled Tasks folder.  There are no public constructors for Task.
            New instances are generated by a <see cref="T:TaskScheduler.ScheduledTasks"/> object using Open or Create methods.
            A task object holds COM interfaces;  call its <see cref="M:TaskScheduler.Task.Close"/> method to release them.
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.iTask">
            <summary>
            Internal COM interface
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.name">
            <summary>
            Name of this task (with no .job extension)
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.triggers">
            <summary>
            List of triggers for this task
            </summary>
        </member>
        <member name="M:TaskScheduler.Task.#ctor(TaskSchedulerInterop.ITask,System.String)">
            <summary>
            Internal constructor for a task, used by <see cref="T:TaskScheduler.ScheduledTasks"/>.
            </summary>
            <param name="iTask">Instance of an ITask.</param>
            <param name="taskName">Name of the task.</param>
        </member>
        <member name="M:TaskScheduler.Task.SetHiddenFileAttr(System.Boolean)">
            <summary>
            Set the hidden attribute on the file corresponding to this task.
            </summary>
            <param name="set">Set the attribute accordingly.</param>
        </member>
        <member name="M:TaskScheduler.Task.GetHiddenFileAttr">
            <summary>
            Get the hidden attribute from the file corresponding to this task.
            </summary>
            <returns>The value of the attribute.</returns>
        </member>
        <member name="M:TaskScheduler.Task.NextRunTimeAfter(System.DateTime)">
            <summary>
            Calculate the next time the task would be scheduled
            to run after a given arbitrary time.  If the task will not run
            (perhaps disabled) then returns <see cref="F:System.DateTime.MinValue"/>.
            </summary>
            <param name="after">The time to calculate from.</param>
            <returns>The next time the task would run.</returns>
        </member>
        <member name="M:TaskScheduler.Task.Run">
            <summary>
            Schedules the task for immediate execution.  
            The system works from the saved version of the task, so call <see cref="M:TaskScheduler.Task.Save"/> before running.
            If the task has never been saved, it throws an argument exception.  Problems starting
            the task are reported by the <see cref="P:TaskScheduler.Task.ExitCode"/> property, not by exceptions on Run.
            </summary>
            <remarks>The system never updates an open task, so you don't get current results for
            the <see cref="P:TaskScheduler.Task.Status"/> or the <see cref="P:TaskScheduler.Task.ExitCode"/> properties until you close
            and reopen the task.
            </remarks>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:TaskScheduler.Task.Save">
            <summary>
            Saves changes to the established task name.
            </summary>
            <overloads>Saves changes that have been made to this Task.</overloads>
            <remarks>The account name is checked for validity
            when a Task is saved.  The password is not checked, but the account name
            must be valid (or empty).
            </remarks>
            <exception cref="T:System.Runtime.InteropServices.COMException">Unable to establish existence of the account specified.</exception>
        </member>
        <member name="M:TaskScheduler.Task.Save(System.String)">
            <summary>
            Saves the Task with a new name.  The task with the old name continues to 
            exist in whatever state it was last saved.  It is no longer open, because.  
            the Task object is associated with the new name from now on. 
            If there is already a task using the new name, it is overwritten.
            </summary>
            <remarks>See the <see cref="M:TaskScheduler.Task.Save"/>() overload.</remarks>
            <param name="name">The new name to be used for this task.</param>
            <exception cref="T:System.Runtime.InteropServices.COMException">Unable to establish existence of the account specified.</exception>
        </member>
        <member name="M:TaskScheduler.Task.Close">
            <summary>
            Release COM interfaces for this Task.  After a Task is closed, accessing its
            members throws a null reference exception.
            </summary>
        </member>
        <member name="M:TaskScheduler.Task.DisplayForEdit">
            <summary>
            For compatibility with earlier versions.  New clients should use <see cref="M:TaskScheduler.Task.DisplayPropertySheet"/>.
            </summary>
            <remarks>
            Display the property pages of this task for user editing.  If the user clicks OK, the
            task's properties are updated and the task is also automatically saved.
            </remarks>
        </member>
        <member name="M:TaskScheduler.Task.DisplayPropertySheet">
            
            <summary>
            Display all property pages.
            </summary>
            <remarks>  
            The method does not return until the user has dismissed the dialog box.
            If the dialog box is dismissed with the OK button, returns true and
            updates properties in the task.
            The changes are not made permanent, however, until the task is saved.  (Save() method.)
            </remarks>
            <returns><c>true</c> if dialog box was dismissed with OK, otherwise <c>false</c>.</returns>
            <overloads>Display the property pages of this task for user editing.</overloads>
        </member>
        <member name="M:TaskScheduler.Task.DisplayPropertySheet(TaskScheduler.Task.PropPages)">
            <summary>
            Display only the specified property pages.  
            </summary>
            <remarks>  
            See the <see cref="M:TaskScheduler.Task.DisplayPropertySheet"/>() overload.
            </remarks>
            <param name="pages">Controls which pages are presented</param>
            <returns><c>true</c> if dialog box was dismissed with OK, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TaskScheduler.Task.SetAccountInformation(System.String,System.String)">
            <summary>
            Sets the account under which the task will run.  Supply the account name and 
            password as parameters.  For the localsystem account, pass an empty string for
            the account name and null for the password.  See Remarks.
            </summary>
            <param name="accountName">Full account name.</param>
            <param name="password">Password for the account.</param>
            <remarks>
            <p>To have the task to run under the local system account, pass the empty string ("")
            as accountName and null as the password.  The caller must be running in
            an administrator account or in the local system account.
            </p> 
            <p>
            You can also specify a null password if the task has the flag RunOnlyIfLoggedOn set.
            This allows you to schedule a task for an account for which you don't know the password,
            but the account must be logged on interactively at the time the task runs.</p>
            </remarks>
        </member>
        <member name="M:TaskScheduler.Task.SetAccountInformation(System.String,System.Security.SecureString)">
            <summary>
            Overload for SetAccountInformation which permits use of a SecureString for the
            password parameter.  The decoded password will remain in memory only as long as
            needed to be passed to the TaskScheduler service.
            </summary>
            <param name="accountName">Full account name.</param>
            <param name="password">Password for the account.</param>
        </member>
        <member name="M:TaskScheduler.Task.Terminate">
            <summary>
            Request that the task be terminated if it is currently running.  The call returns
            immediately, although the task may continue briefly.  For Windows programs, a WM_CLOSE
            message is sent first and the task is given three minutes to shut down voluntarily.
            Should it not, or if the task is not a Windows program, TerminateProcess is used.
            </summary>
            <exception cref="T:System.Runtime.InteropServices.COMException">The task is not running.</exception>
        </member>
        <member name="M:TaskScheduler.Task.ToString">
            <summary>
            Overridden. Outputs the name of the task, the application and parameters.
            </summary>
            <returns>String representing task.</returns>
        </member>
        <member name="M:TaskScheduler.Task.Dispose">
            <summary>
            A synonym for Close.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Name">
            <summary>
            Gets the name of the task.  The name is also the filename (plus a .job extension)
            the Task Scheduler uses to store the task information.  To change the name of a
            task, use <see cref="M:TaskScheduler.Task.Save"/> to save it as a new name and then delete
            the old task.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Triggers">
            <summary>
            Gets the list of triggers associated with the task.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.ApplicationName">
            <summary>
            Gets/sets the application filename that task is to run.  Get returns 
            an absolute pathname.  A name searched with the PATH environment variable can
            be assigned, and the path search is done when the task is saved.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.AccountName">
            <summary>
            Gets the name of the account under which the task process will run.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Comment">
            <summary>
            Gets/sets the comment associated with the task.  The comment appears in the 
            Scheduled Tasks user interface.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Creator">
            <summary>
            Gets/sets the creator of the task.  If no value is supplied, the system
            fills in the account name of the caller when the task is saved.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.ErrorRetryCount">
            <summary>
            Gets/sets the number of times to retry task execution after failure. (Not implemented.)
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.ErrorRetryInterval">
            <summary>
            Gets/sets the time interval, in minutes, to delay between error retries. (Not implemented.)
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.ExitCode">
            <summary>
            Gets the Win32 exit code from the last execution of the task.  If the task failed
            to start on its last run, the reason is returned as an exception.  Not updated while
            in an open task;  the property does not change unless the task is closed and re-opened.
            <exception>Various exceptions for a task that couldn't be run.</exception>
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Flags">
            <summary>
            Gets/sets the <see cref="T:TaskScheduler.TaskFlags"/> associated with the current task. 
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.IdleWaitMinutes">
            <summary>
            Gets/sets how long the system must remain idle, even after the trigger
            would normally fire, before the task will run. 
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.IdleWaitDeadlineMinutes">
            <summary>
            Gets/sets the maximum number of minutes that Task Scheduler will wait for a 
            required idle period to occur. 
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.MaxRunTime">
            <summary>
            <p>Gets/sets the maximum length of time the task is permitted to run.
            Setting MaxRunTime also affects the value of <see cref="P:TaskScheduler.Task.MaxRunTimeLimited"/>.
            </p>
            <p>The longest MaxRunTime implemented is 0xFFFFFFFE milliseconds, or 
            about 50 days.  If you set a TimeSpan longer than that, the
            MaxRunTime will be unlimited.</p>
            </summary>
            <Remarks>
            </Remarks>
        </member>
        <member name="P:TaskScheduler.Task.MaxRunTimeLimited">
            <summary>
            <p>If the maximum run time is limited, the task will be terminated after 
            <see cref="P:TaskScheduler.Task.MaxRunTime"/> expires.  Setting the value to FALSE, i.e. unlimited,
            invalidates MaxRunTime.</p> 
            <p>The Task Scheduler service will try to send a WM_CLOSE message when it needs to terminate
            a task.  If the message can't be sent, or the task does not respond with three minutes,
            the task will be terminated using TerminateProcess.</p> 
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.MostRecentRunTime">
            <summary>
            Gets the most recent time the task began running.  <see cref="F:System.DateTime.MinValue"/> 
            returned if the task has not run.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.NextRunTime">
            <summary>
            Gets the next time the task will run. Returns <see cref="F:System.DateTime.MinValue"/> 
            if the task is not scheduled to run.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Parameters">
            <summary>
            Gets/sets the command-line parameters for the task.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Priority">
            <summary>
            Gets/sets the priority for the task process.  
            Note:  ProcessPriorityClass defines two levels (AboveNormal and BelowNormal) that are
            not documented in the task scheduler interface and can't be use on Win 98 platforms.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Status">
            <summary>
            Gets the status of the task.  Returns <see cref="T:TaskScheduler.TaskStatus"/>.
            Not updated while a task is open.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.FlagsEx">
            <summary>
            Extended Flags associated with a task. These are associated with the ITask com interface
            and none are currently defined.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.WorkingDirectory">
            <summary>
            Gets/sets the initial working directory for the task.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Hidden">
            <summary>
            Hidden tasks are stored in files with
            the hidden file attribute so they don't appear in the Explorer user interface.
            Because there is a special interface for Scheduled Tasks, they don't appear
            even if Explorer is set to show hidden files.
            Functionally equivalent to TaskFlags.Hidden.
            </summary>
        </member>
        <member name="P:TaskScheduler.Task.Tag">
            <summary>
            Gets/sets arbitrary data associated with the task.  The tag can be used for any purpose
            by the client, and is not used by the Task Scheduler.  Known as WorkItemData in the
            IWorkItem com interface.
            </summary>
        </member>
        <member name="T:TaskScheduler.Task.PropPages">
            <summary>
            Argument for DisplayForEdit to determine which property pages to display.
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.PropPages.Task">
            <summary>
            The task property page
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.PropPages.Schedule">
            <summary>
            The schedule property page
            </summary>
        </member>
        <member name="F:TaskScheduler.Task.PropPages.Settings">
            <summary>
            The setting property page
            </summary>
        </member>
        <member name="T:TaskScheduler.Scheduler">
            <summary>
            Deprecated.  For V1 compatibility only. 
            </summary>
            <remarks>
            <p>Scheduler is just a wrapper around the TaskList class.</p>
            <p><i>Provided for compatibility with version one of the library.  Use of Scheduler
            and TaskList will normally result in COM memory leaks.</i></p>
            </remarks>
        </member>
        <member name="F:TaskScheduler.Scheduler.tasks">
            <summary>
            Internal field which holds TaskList instance
            </summary>
        </member>
        <member name="M:TaskScheduler.Scheduler.#ctor">
            <summary>
            Creates instance of task scheduler on local machine
            </summary>
        </member>
        <member name="M:TaskScheduler.Scheduler.#ctor(System.String)">
            <summary>
            Creates instance of task scheduler on remote machine
            </summary>
            <param name="computer">Name of remote machine</param>
        </member>
        <member name="P:TaskScheduler.Scheduler.TargetComputer">
            <summary>
            Gets/sets name of target computer. Null or emptry string specifies local computer.
            </summary>
        </member>
        <member name="P:TaskScheduler.Scheduler.Tasks">
            <summary>
            Gets collection of system tasks
            </summary>
        </member>
        <member name="M:TaskSchedulerInterop.CoTaskMem.LPWStrToString(System.IntPtr)">
            <summary>
            Many COM methods in ITask, ITaskTrigger, and ITaskScheduler return an LPWStr which should
            should be freed after the string is accessed.  The "out" pointer could be converted  
            to a string during marshalling, but then the memory wouldn't be freed.  Instead
            these entries return an IntPtr--call this method to convert it to a string.
            </summary>
            <param name="lpwstr">A pointer to a unicode string in COM Task Memory, invalid at exit.</param>
            <returns>String value.</returns>
        </member>
    </members>
</doc>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
I'm a long-time programmer in compilers, operating systems, microprogramming, applications, and web programming. I've got way too many years of experience piled up--old Burroughs mainframes, Unix, Macintosh, and Windows.

Software was finally beginning to get boring, but then along came .Net and brought the fun back!

Comments and Discussions