1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
using System;
using System.Management;
using System.Reflection;
class ScheduleJob
{
public static uint Create(string Command, uint DaysOfMonth, uint DaysOfWeek,
bool InteractWithDesktop, bool RunRepeatedly, string StartTime, // in DMTF format !
out uint JobId)
{
// See: Platform SDK (or WMI SDK) doc's for detailed info about 'Win32_ScheduledJob' class
ManagementBaseObject inputArgs = null;
ManagementClass classObj = new ManagementClass(null, "Win32_ScheduledJob", null);
inputArgs = classObj.GetMethodParameters("Create");
inputArgs["Command"] = Command;
inputArgs["DaysOfMonth"] = DaysOfMonth;
inputArgs["DaysOfWeek"] = DaysOfWeek;
inputArgs["InteractWithDesktop"] = InteractWithDesktop;
inputArgs["RunRepeatedly"] = RunRepeatedly;
inputArgs["StartTime"] = StartTime;
// use late binding to invoke "Create" method on "Win32_ScheduledJob" WMI class
ManagementBaseObject outParams = classObj.InvokeMethod("Create", inputArgs, null);
JobId = ((uint)(outParams.Properties["JobId"].Value));
return ((uint)(outParams.Properties["ReturnValue"].Value));
}
// Delete the Scheduled (JobID)
public static uint Delete(uint JobID)
{
ManagementObject mo;
ManagementPath path = ManagementPath.DefaultPath;
path.RelativePath = "Win32_ScheduledJob.JobId=" + "\"" + JobID + "\"";
mo = new ManagementObject(path);
ManagementBaseObject inParams = null;
// use late binding to invoke "Delete" method on "Win32_ScheduledJob" WMI class
ManagementBaseObject outParams = mo.InvokeMethod("Delete", inParams, null);
return ((uint)(outParams.Properties["ReturnValue"].Value));
}
public static string ToDMTFTime(DateTime dateParam)
{
string tempString = dateParam.ToString("********HHmmss.ffffff");
TimeSpan tickOffset = TimeZone.CurrentTimeZone.GetUtcOffset(dateParam);
tempString += (tickOffset.Ticks >= 0) ? '+' : '-';
tempString += (Math.Abs(tickOffset.Ticks) / System.TimeSpan.TicksPerMinute).ToString("d3");
return tempString;
}
} |
Partager