Hi dahall,
here my code:
here my code:
using System; using Microsoft.Win32.TaskScheduler; using System.Management; namespace TestTaskScheduler { class Program { staticvoid Main(string[] args) { var ts = new TaskService(); TaskDefinition td = ts.NewTask(); td.RegistrationInfo.Description = "some description"; td.Principal.LogonType = TaskLogonType.InteractiveToken; var computerSystemClass = new ManagementClass("Win32_ComputerSystem"); var computerSystems = computerSystemClass.GetInstances(); var enumerator = computerSystems.GetEnumerator(); while (enumerator.MoveNext()) { var computerSystem = enumerator.Current; td.Principal.UserId = (string)computerSystem["UserName"]; } td.Actions.Add(new ExecAction("cmd.exe", "-someparameter")); // Create Triggervar trigger = new RegistrationTrigger { Enabled = true }; trigger.Delay = TimeSpan.FromSeconds(8); trigger.EndBoundary = DateTime.Now + TimeSpan.FromSeconds(20); td.Triggers.Add(trigger); TaskFolder tf = ts.RootFolder; td.Principal.RunLevel = TaskRunLevel.LUA; td.Settings.StartWhenAvailable = true; td.Settings.Hidden = false; td.Settings.MultipleInstances = TaskInstancesPolicy.StopExisting; td.Settings.DisallowStartIfOnBatteries = false; td.Settings.StopIfGoingOnBatteries = false; td.Settings.IdleSettings.StopOnIdleEnd = false; td.Settings.DeleteExpiredTaskAfter = TimeSpan.FromSeconds(40); TaskFolder testFolder = null; foreach (TaskFolder taskFolder in tf.SubFolders) { if (taskFolder.Name.Equals("TEST", StringComparison.OrdinalIgnoreCase)) { testFolder = taskFolder; } } if (testFolder == null) testFolder = tf.CreateFolder("TEST"); testFolder.RegisterTaskDefinition("Start", td, TaskCreation.CreateOrUpdate, null, null, TaskLogonType.InteractiveToken); Console.ReadKey(); } } }